Function at 0x100e9f10
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], 0xb1bca09b
xor eax, eax
mov dword [ebp - 0x13], 0xb1a0f4a6
mov dword [ebp - 0xf], 0xa6a1a0ac
mov word [ebp - 0xb], 0xa7b1
mov byte [ebp - 9], 0xd4
nop dword [eax]
xor byte [ebp + eax - 0x17], 0xd4
inc eax
cmp eax, 0xf
jb 0x100e9f50
movaps xmm0, xmmword [0x1017fd60]
xor eax, eax
movaps xmm1, xmmword [0x1017fe80]
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x2c], 0xb28be5a2
movaps xmm0, xmmword [0x1017fcb0]
movups xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0x28], 0xd4b1a6bd
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 0x100e9f90
cmp eax, 0x28
jae 0x100e9fbb
nop word [eax + eax]
xor byte [ebp + eax - 0x4c], 0xd4
inc eax
cmp eax, 0x28
jb 0x100e9fb0
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], 0xb1bca09b
mov dword [ebp - 0x13], 0xb1a0f4a6
mov dword [ebp - 0xf], 0xa6a1a0ac
mov word [ebp - 0xb], 0xa7b1
mov byte [ebp - 9], 0xd4
nop dword [eax + eax]
xor byte [ebp + eax - 0x17], 0xd4
inc eax
cmp eax, 0xf
jb 0x100ea000
movaps xmm0, xmmword [0x1017fd60]
xor eax, eax
movaps xmm2, xmmword [0x1017fe80]
movups xmmword [ebp - 0x54], xmm0
movaps xmm0, xmmword [0x1017fcb0]
movups xmmword [ebp - 0x44], xmm0
movaps xmm0, xmmword [0x1017fe40]
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 0x100ea035
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], 0xb1bca09b
mov dword [ebp - 0x13], 0xb1a0f4a6
mov dword [ebp - 0xf], 0xa6a1a0ac
mov word [ebp - 0xb], 0xa7b1
mov byte [ebp - 9], 0xd4
nop dword [eax]
xor byte [ebp + eax - 0x17], 0xd4
inc eax
cmp eax, 0xf
jb 0x100ea090
movaps xmm0, xmmword [0x1017fd60]
xor eax, eax
movups xmmword [ebp - 0x4d], xmm0
mov dword [ebp - 0x2d], 0xb18be5a2
movaps xmm0, xmmword [0x1017fcb0]
movups xmmword [ebp - 0x3d], xmm0
mov dword [ebp - 0x29], 0xa7b0bbb9
mov byte [ebp - 0x25], 0xd4
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x4d]
movaps xmm1, xmmword [0x1017fe80]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x4d], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x100ea0d0
cmp eax, 0x29
jae 0x100ea0fc
xor byte [ebp + eax - 0x4d], 0xd4
inc eax
cmp eax, 0x29
jb 0x100ea0f1
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], 0xb1bca09b
mov dword [ebp - 0x13], 0xb1a0f4a6
xor eax, eax
mov dword [ebp - 0xf], 0xa6a1a0ac
mov word [ebp - 0xb], 0xa7b1
mov byte [ebp - 9], 0xd4
nop dword [eax + eax]
xor byte [ebp + eax - 0x17], 0xd4
inc eax
cmp eax, 0xf
jb 0x100ea140
movaps xmm0, xmmword [0x1017fd60]
xor eax, eax
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x28], 0xd4a0a7a1
movaps xmm0, xmmword [0x1017fcb0]
movups xmmword [ebp - 0x48], xmm0
movaps xmm0, xmmword [0x1017fc10]
movups xmmword [ebp - 0x38], xmm0
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x58]
movaps xmm1, xmmword [0x1017fe80]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x58], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x100ea180
cmp eax, 0x34
jae 0x100ea1ac
xor byte [ebp + eax - 0x58], 0xd4
inc eax
cmp eax, 0x34
jb 0x100ea1a1
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 0x100ea2aa
call edx
test al, al
jne 0x100ea1f5
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 0x100ea211
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 0x100ea22b
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 0x100ea245
mov eax, dword [esi]
mov ecx, esi
push 1
push 4
call dword [eax + 0x74]
mov esi, dword [0x101ee190]
test esi, esi
je 0x100ea30c
mov edi, 1
test esi, esi
je 0x100ea30c
push 0x1c
lea eax, [ebp - 0x24]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x100ea30c
mov eax, dword [ebp - 0x10]
test al, 1
jne 0x100ea30c
test eax, 0x100
jne 0x100ea30c
mov esi, dword [esi]
sub edi, 1
jne 0x100ea258
test esi, esi
je 0x100ea30c
mov eax, dword [0x101ee190]
test eax, eax
je 0x100ea30c
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 0x100ea2bc
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 0x100ea2d8
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 0x100ea2f2
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 0x100ea30c
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