Function at 0x100ea070
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x58
push esi
push edi
mov dword [ebp - 0x17], 0xe1ecf0cb
xor eax, eax
mov dword [ebp - 0x13], 0xe1f0a4f6
mov dword [ebp - 0xf], 0xf6f1f0fc
mov word [ebp - 0xb], 0xf7e1
mov byte [ebp - 9], 0x84
nop dword [eax]
xor byte [ebp + eax - 0x17], 0x84
inc eax
cmp eax, 0xf
jb 0x100ea0b0
movaps xmm0, xmmword [0x1017ffc0]
xor eax, eax
movaps xmm1, xmmword [0x1017f9b0]
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x2c], 0xe2dbb5f2
movaps xmm0, xmmword [0x1017fee0]
movups xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0x28], 0x84e1f6ed
nop dword [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x4c]
xorps xmm0, xmm1
movups xmmword [ebp + eax - 0x4c], xmm0
add eax, 0x10
cmp eax, 0x20
jb 0x100ea0f0
cmp eax, 0x28
jae 0x100ea11b
nop word [eax + eax]
xor byte [ebp + eax - 0x4c], 0x84
inc eax
cmp eax, 0x28
jb 0x100ea110
mov ecx, dword [0x101ee058]
lea edx, [ebp - 0x17]
push 0
push 1
push edx
mov eax, dword [ecx]
lea edx, [ebp - 0x4c]
push edx
mov eax, dword [eax + 0x150]
call eax
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x17], 0xe1ecf0cb
mov dword [ebp - 0x13], 0xe1f0a4f6
mov dword [ebp - 0xf], 0xf6f1f0fc
mov word [ebp - 0xb], 0xf7e1
mov byte [ebp - 9], 0x84
nop dword [eax + eax]
xor byte [ebp + eax - 0x17], 0x84
inc eax
cmp eax, 0xf
jb 0x100ea160
movaps xmm0, xmmword [0x1017ffc0]
xor eax, eax
movaps xmm2, xmmword [0x1017f9b0]
movups xmmword [ebp - 0x54], xmm0
movaps xmm0, xmmword [0x1017fee0]
movups xmmword [ebp - 0x44], xmm0
movaps xmm0, xmmword [0x1017fa00]
movups xmmword [ebp - 0x34], xmm0
movups xmm0, xmmword [ebp + eax - 0x54]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x54], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x100ea195
mov ecx, dword [0x101ee058]
lea edx, [ebp - 0x17]
push 0
push 1
push edx
mov eax, dword [ecx]
lea edx, [ebp - 0x54]
push edx
mov eax, dword [eax + 0x150]
call eax
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x17], 0xe1ecf0cb
mov dword [ebp - 0x13], 0xe1f0a4f6
mov dword [ebp - 0xf], 0xf6f1f0fc
mov word [ebp - 0xb], 0xf7e1
mov byte [ebp - 9], 0x84
nop dword [eax]
xor byte [ebp + eax - 0x17], 0x84
inc eax
cmp eax, 0xf
jb 0x100ea1f0
movaps xmm0, xmmword [0x1017ffc0]
xor eax, eax
movups xmmword [ebp - 0x4d], xmm0
mov dword [ebp - 0x2d], 0xe1dbb5f2
movaps xmm0, xmmword [0x1017fee0]
movups xmmword [ebp - 0x3d], xmm0
mov dword [ebp - 0x29], 0xf7e0ebe9
mov byte [ebp - 0x25], 0x84
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x4d]
movaps xmm1, xmmword [0x1017f9b0]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x4d], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x100ea230
cmp eax, 0x29
jae 0x100ea25c
xor byte [ebp + eax - 0x4d], 0x84
inc eax
cmp eax, 0x29
jb 0x100ea251
mov ecx, dword [0x101ee058]
lea edx, [ebp - 0x17]
push 0
push 1
push edx
mov eax, dword [ecx]
lea edx, [ebp - 0x4d]
push edx
mov eax, dword [eax + 0x150]
call eax
mov edi, eax
mov dword [ebp - 0x17], 0xe1ecf0cb
mov dword [ebp - 0x13], 0xe1f0a4f6
xor eax, eax
mov dword [ebp - 0xf], 0xf6f1f0fc
mov word [ebp - 0xb], 0xf7e1
mov byte [ebp - 9], 0x84
nop dword [eax + eax]
xor byte [ebp + eax - 0x17], 0x84
inc eax
cmp eax, 0xf
jb 0x100ea2a0
movaps xmm0, xmmword [0x1017ffc0]
xor eax, eax
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x28], 0x84f0f7f1
movaps xmm0, xmmword [0x1017fee0]
movups xmmword [ebp - 0x48], xmm0
movaps xmm0, xmmword [0x1017feb0]
movups xmmword [ebp - 0x38], xmm0
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x58]
movaps xmm1, xmmword [0x1017f9b0]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x58], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x100ea2e0
cmp eax, 0x34
jae 0x100ea30c
xor byte [ebp + eax - 0x58], 0x84
inc eax
cmp eax, 0x34
jb 0x100ea301
mov ecx, dword [0x101ee058]
lea edx, [ebp - 0x17]
push 0
push 1
push edx
mov eax, dword [ecx]
lea edx, [ebp - 0x58]
push edx
mov eax, dword [eax + 0x150]
call eax
cmp byte [0x101e999a], 0
mov esi, eax
mov eax, dword [ebp - 8]
push 4
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
mov ecx, eax
je 0x100ea40a
call edx
test al, al
jne 0x100ea355
mov ecx, dword [ebp - 8]
push 1
push 4
mov eax, dword [ecx]
call dword [eax + 0x74]
mov ecx, dword [ebp - 4]
push 4
mov eax, dword [ecx]
mov eax, dword [eax + 0x78]
call eax
test al, al
jne 0x100ea371
mov ecx, dword [ebp - 4]
push 1
push 4
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [edi]
mov ecx, edi
push 4
mov eax, dword [eax + 0x78]
call eax
test al, al
jne 0x100ea38b
mov eax, dword [edi]
mov ecx, edi
push 1
push 4
call dword [eax + 0x74]
mov eax, dword [esi]
mov ecx, esi
push 4
mov eax, dword [eax + 0x78]
call eax
test al, al
jne 0x100ea3a5
mov eax, dword [esi]
mov ecx, esi
push 1
push 4
call dword [eax + 0x74]
mov esi, dword [0x101ee190]
test esi, esi
je 0x100ea46c
mov edi, 1
test esi, esi
je 0x100ea46c
push 0x1c
lea eax, [ebp - 0x24]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x100ea46c
mov eax, dword [ebp - 0x10]
test al, 1
jne 0x100ea46c
test eax, 0x100
jne 0x100ea46c
mov esi, dword [esi]
sub edi, 1
jne 0x100ea3b8
test esi, esi
je 0x100ea46c
mov eax, dword [0x101ee190]
test eax, eax
je 0x100ea46c
mov dword [eax], edi
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call edx
test al, al
je 0x100ea41c
mov ecx, dword [ebp - 8]
push 0
push 4
mov eax, dword [ecx]
call dword [eax + 0x74]
mov ecx, dword [ebp - 4]
push 4
mov eax, dword [ecx]
mov eax, dword [eax + 0x78]
call eax
test al, al
je 0x100ea438
mov ecx, dword [ebp - 4]
push 0
push 4
mov eax, dword [ecx]
call dword [eax + 0x74]
mov eax, dword [edi]
mov ecx, edi
push 4
mov eax, dword [eax + 0x78]
call eax
test al, al
je 0x100ea452
mov eax, dword [edi]
mov ecx, edi
push 0
push 4
call dword [eax + 0x74]
mov eax, dword [esi]
mov ecx, esi
push 4
mov eax, dword [eax + 0x78]
call eax
test al, al
je 0x100ea46c
mov eax, dword [esi]
mov ecx, esi
push 0
push 4
call dword [eax + 0x74]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret