Function at 0x100d9140
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
cmp dword [0x100f6024], 0
push esi
push edi
je 0x100d938d
cmp byte [0x100f6028], 0
je 0x100d938d
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 0x100d9183
mov ecx, dword [0x101258e8]
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
movaps xmm0, xmmword [0x100eb440]
pxor xmm0, xmmword [0x100eb6e0]
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 0x100d91d0
mov ecx, dword [0x101258e8]
lea edx, [ebp - 0x28]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
movaps xmm0, xmmword [0x100eb440]
pxor xmm0, xmmword [0x100ebbd0]
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 0x100d9210
mov ecx, dword [0x101258e8]
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 0x100d9250
mov ecx, dword [0x101258e8]
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 0x100d9290
mov ecx, dword [0x101258e8]
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 0x100d92d0
mov ecx, dword [0x101258e8]
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
cmp byte [0x100fd274], 0
mov esi, eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
je 0x100d9346
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