Function at 0x100d8dd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
cmp dword [0x100f5024], 0
push esi
push edi
je 0x100d901d
cmp byte [0x100f5028], 0
je 0x100d901d
mov dword [ebp - 0x20], 0xcff3c0cf
xor eax, eax
mov dword [ebp - 0x1c], 0xdff3c1df
mov dword [ebp - 0x18], 0xc3c8cdc4
mov word [ebp - 0x14], 0xdfdb
mov byte [ebp - 0x12], 0xac
xor byte [ebp + eax - 0x20], 0xac
inc eax
cmp eax, 0xf
jb 0x100d8e13
mov ecx, dword [0x101248e8]
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
movaps xmm0, xmmword [0x100ea470]
pxor xmm0, xmmword [0x100ea710]
mov dword [ebp - 0x10], eax
mov eax, 0x10
mov dword [ebp - 0x18], 0xc5c8f3db
mov word [ebp - 0x14], 0xd8df
mov byte [ebp - 0x12], 0xac
movups xmmword [ebp - 0x28], xmm0
nop dword [eax + eax]
xor byte [ebp + eax - 0x28], 0xac
inc eax
cmp eax, 0x17
jb 0x100d8e60
mov ecx, dword [0x101248e8]
lea edx, [ebp - 0x28]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
movaps xmm0, xmmword [0x100ea470]
pxor xmm0, xmmword [0x100eac00]
mov dword [ebp - 4], eax
mov eax, 0x10
mov dword [ebp - 0x18], 0xacc9c8c5
movups xmmword [ebp - 0x28], xmm0
nop
xor byte [ebp + eax - 0x28], 0xac
inc eax
cmp eax, 0x14
jb 0x100d8ea0
mov ecx, dword [0x101248e8]
lea edx, [ebp - 0x28]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x20], 0xcff3c0cf
mov dword [ebp - 0x1c], 0xdef3c1df
mov dword [ebp - 0x18], 0xd4f3d8c3
mov byte [ebp - 0x14], 0xac
nop word [eax + eax]
xor byte [ebp + eax - 0x20], 0xac
inc eax
cmp eax, 0xd
jb 0x100d8ee0
mov ecx, dword [0x101248e8]
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x20], 0xcff3c0cf
mov dword [ebp - 0x1c], 0xdef3c1df
mov dword [ebp - 0x18], 0xd5f3d8c3
mov byte [ebp - 0x14], 0xac
nop word [eax + eax]
xor byte [ebp + eax - 0x20], 0xac
inc eax
cmp eax, 0xd
jb 0x100d8f20
mov ecx, dword [0x101248e8]
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov edi, eax
mov dword [ebp - 0x20], 0xcff3c0cf
mov dword [ebp - 0x1c], 0xdef3c1df
xor eax, eax
mov dword [ebp - 0x18], 0xd6f3d8c3
mov byte [ebp - 0x14], 0xac
nop dword [eax]
xor byte [ebp + eax - 0x20], 0xac
inc eax
cmp eax, 0xd
jb 0x100d8f60
mov ecx, dword [0x101248e8]
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
cmp byte [0x100fc274], 0
mov esi, eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
je 0x100d8fd6
mov edx, dword [eax + 0x40]
push 1
call edx
mov ecx, dword [ebp - 4]
push 0x320
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [ebp - 8]
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, dword [ebp - 0xc]
push 0xf
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov eax, dword [edi]
mov ecx, edi
push 0
mov eax, dword [eax + 0x40]
call eax
mov eax, dword [esi]
mov ecx, esi
push 0
mov eax, dword [eax + 0x40]
call eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
push dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
push dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx]
push dword [ecx + 0x20]
mov eax, dword [eax + 0x38]
call eax
mov eax, dword [edi]
mov ecx, edi
push dword [edi + 0x20]
mov eax, dword [eax + 0x38]
call eax
mov eax, dword [esi]
mov ecx, esi
push dword [esi + 0x20]
mov eax, dword [eax + 0x38]
call eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret