Function at 0x1000f7a3
Capabilities:
Encode data using xor

Disassembly:
push 0x304
mov eax, 0x10076b13
call fcn.1004605f
xor ebx, ebx
cmp dword [0x1009bd38], ebx
jne 0x1000f889
mov esi, 0x100
lea eax, [ebp - 0x110]
push esi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push ebx
push ebx
push ebx
push ebx
push esi
lea eax, [ebp - 0x210]
push eax
push 3
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.10063610
add esp, 0x24
test eax, eax
jne 0x1000f889
mov cl, 0x36
mov dword [ebp - 0x2d0], 0x13451336
mov word [ebp - 0x2cc], 0x45
mov eax, ebx
xor byte [ebp + eax - 0x2cf], cl
inc eax
cmp eax, 4
jae 0x1000f82c
mov cl, byte [ebp - 0x2d0]
jmp 0x1000f817
lea eax, [ebp - 0x210]
mov byte [ebp - 0x2cb], bl
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x2cf]
push eax
lea eax, [ebp - 0x110]
push esi
push eax
call fcn.1000fd1a
add esp, 0x14
lea eax, [ebp - 0x110]
lea ecx, [ebp - 0x300]
push eax
call fcn.10001f6a
lea ecx, [ebp - 0x300]
mov dword [ebp - 4], ebx
call fcn.1000f27a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x300]
push ebx
push 1
call fcn.10001e1f
mov ecx, 0xd79978
call fcn.10010f34
mov esi, eax
test esi, esi
je 0x1000f916
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push esi
call edi
test eax, eax
jne 0x1000f916
mov eax, dword [esi]
mov esi, dword [eax + 0xa8]
test esi, esi
je 0x1000f916
push 4
push esi
call edi
test eax, eax
jne 0x1000f916
call fcn.10044120
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
call ebx
push eax
call fcn.100445f0
push 0x1000f76e
push 0x1009e750
call fcn.10043e30
call fcn.10044180
push 4
push esi
mov dword [0x1009e750], esi
call edi
test eax, eax
jne 0x1000f914
call fcn.10044120
call ebx
push eax
call fcn.100445f0
push 0x1000f76e
push 0x1009e750
call fcn.100439a0
call fcn.10044180
xor ebx, ebx
push 0x98
lea eax, [ebp - 0x2c8]
push ebx
push eax
call fcn.1005ddd0
pop ecx
lea ecx, [ebp - 0x2c8]
call fcn.10005b8d
xor edi, edi
mov cl, 0x49
inc edi
mov al, 0x14
mov dword [ebp - 4], edi
xor al, cl
movaps xmm0, xmmword [0x1008e4d0]
mov byte [ebp - 0x2d4], cl
mov ecx, ebx
mov byte [ebp - 0x2d3], al
mov byte [ebp - 0x2d2], bl
movups xmmword [ebp - 0x2e8], xmm0
mov dword [ebp - 0x2d8], 0x364d19
mov al, byte [ebp - 0x2e8]
xor byte [ebp + ecx - 0x2e7], al
inc ecx
cmp ecx, 0x12
jb 0x1000f96c
lea edx, [ebp - 0x2e7]
mov byte [ebp - 0x2d5], bl
lea ecx, [ebp - 0x2c8]
call fcn.100041b3
mov esi, eax
test esi, esi
jne 0x1000f9a0
mov ecx, ebx
jmp 0x1000f9a7
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
mov eax, dword [ecx + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
push ebx
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x310]
push 8
push eax
call fcn.10041481
add esp, 0xc
mov edx, eax
mov ecx, esi
call fcn.10003f7e
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov byte [ecx + esi + 0x40], 0x30
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
mov ecx, esi
call fcn.10002954
lea edx, [ebp - 0x2d3]
mov ecx, eax
call fcn.100041b3
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x2c8]
call fcn.10003f62
cmp dword [ebp - 0x218], 0x10
lea ecx, [ebp - 0x22c]
push 0x1000f46d
cmovae ecx, dword [ebp - 0x22c]
lea eax, [ebp - 0x22c]
cmovae eax, dword [ebp - 0x22c]
push 0xfffffffffffffffc
push ecx
push eax
call dword [sym.imp.USER32.dll_FindWindowA]
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
push ebx
push edi
lea ecx, [ebp - 0x22c]
mov dword [0x1009e754], eax
call fcn.10001e1f
lea ecx, [ebp - 0x2c8]
call fcn.10004390
call fcn.10046009
ret