Function at 0x1002ae00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x12a4
call fcn.100ce4e0
mov eax, dword [0x100e8040]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x700]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0xf58], ecx
mov ecx, 0x80
mov dword [ebp - 0xf54], edi
vxorps xmm0, xmm0, xmm0
nop dword [eax + eax]
lea eax, [eax + 0xc]
vmovss dword [eax - 0x14], xmm0
vmovss dword [eax - 0x10], xmm0
vmovss dword [eax - 0xc], xmm0
sub ecx, 1
jne 0x1002ae40
mov eax, dword [0x1010e904]
cmp dword [edi + eax], ecx
jne 0x1002ae6f
mov eax, dword [0x1010e888]
mov ecx, edi
call eax
mov eax, dword [0x1010e904]
mov eax, dword [edi + eax]
mov dword [ebp - 0xf5c], eax
test eax, eax
je 0x1002b160
mov eax, dword [0x1010e8e8]
add eax, edi
mov dword [ebp - 0xf60], eax
je 0x1002b160
mov eax, dword [eax + 4]
mov dword [ebp - 0xf64], eax
test eax, eax
je 0x1002b160
mov ebx, dword [edi + 0x260]
mov ecx, edi
mov dword [edi + 0x260], 0
mov eax, dword [edi]
mov eax, dword [eax + 0x28]
call eax
mov ecx, edi
vmovss xmm0, dword [eax]
vmovss dword [ebp - 0xf14], xmm0
vmovss xmm0, dword [eax + 4]
vmovss dword [ebp - 0xf10], xmm0
vmovss xmm0, dword [eax + 8]
vmovss dword [ebp - 0xf0c], xmm0
mov eax, dword [edi]
mov eax, dword [eax + 0x2c]
call eax
mov esi, dword [0x1010e8ec]
lea edx, [ebp - 0xf50]
mov ecx, 0xb6
vmovss xmm0, dword [eax]
vmovss dword [ebp - 0xf20], xmm0
vmovss xmm0, dword [eax + 4]
vmovss dword [ebp - 0xf1c], xmm0
vmovss xmm0, dword [eax + 8]
mov eax, dword [0x1010ea14]
add eax, 0xffffffa6
xor eax, 0xd81b757e
vmovss dword [ebp - 0xf18], xmm0
mov esi, dword [edi + esi]
vmovdqu ymm0, ymmword [eax + edi]
vmovdqu ymmword [ebp - 0xf88], ymm0
vmovdqu ymm0, ymmword [eax + edi + 0x20]
vmovdqu ymmword [ebp - 0xfa8], ymm0
vmovdqu ymm0, ymmword [eax + edi + 0x40]
mov eax, dword [ebp - 0xf58]
lea edi, [ebp - 0x12a0]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x6c]
vmovdqu ymmword [ebp - 0xfc8], ymm0
lea esi, [eax + 0x3d0]
mov ecx, edi
vzeroupper
call dword [0x1010e8a0]
vmovss xmm0, dword [esi]
mov eax, dword [0x1010e96c]
mov ecx, dword [ebp - 0xf54]
add eax, 0xffffffd0
vmovss dword [ebp - 0xf44], xmm0
vmovss xmm0, dword [esi + 4]
xor eax, 0xd81b7554
vmovss dword [ebp - 0xf34], xmm0
vmovss xmm0, dword [esi + 8]
vmovss dword [ebp - 0xf24], xmm0
or dword [eax + ecx], 8
mov eax, dword [0x1010e880]
push esi
call eax
mov eax, dword [0x1010e87c]
mov ecx, dword [ebp - 0xf54]
push edi
call eax
mov eax, dword [0x1010ea14]
mov ecx, dword [ebp - 0xf58]
add eax, 0xffffffa6
mov edx, dword [ebp - 0xf54]
xor eax, 0xd81b757e
vmovdqu ymm0, ymmword [ecx + 0x358]
vmovdqu ymmword [eax + edx], ymm0
vmovdqu ymm0, ymmword [ecx + 0x378]
vmovdqu ymmword [eax + edx + 0x20], ymm0
vmovdqu ymm0, ymmword [ecx + 0x398]
vmovdqu ymmword [eax + edx + 0x40], ymm0
mov edi, dword [0x1010e8ec]
lea esi, [ecx + 0x80]
mov eax, dword [ebp + 0x10]
mov ecx, 0xb6
mov edi, dword [edx + edi]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xf60]
mov byte [0x100f8fc0], 1
mov dword [edi + 4], eax
push 0x7ff00
push ecx
mov ecx, dword [ebp - 0xf58]
mov esi, edx
vmovss xmm0, dword [ecx + 0x3e8]
mov eax, dword [esi]
lea ecx, [ebp - 0xf08]
vmovss dword [esp], xmm0
push ecx
lea ecx, [ebp - 0x708]
mov eax, dword [eax + 0x320]
push ecx
push dword [ebp - 0xf5c]
mov ecx, esi
vzeroupper
call eax
push pe_nt_image_headers32
lea eax, [ebp - 0x108]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esi]
lea ecx, [ebp - 0x108]
add esp, 0xc
mov eax, dword [eax + 0x2e0]
push ecx
push 0x7ff00
lea ecx, [ebp - 0xf50]
push ecx
lea ecx, [ebp - 0xf08]
push ecx
lea ecx, [ebp - 0x708]
push ecx
push dword [ebp - 0xf5c]
mov ecx, esi
call eax
mov eax, dword [ebp - 0xf64]
lea ecx, [ebp - 0xf14]
mov dword [edi + 4], eax
mov eax, dword [0x1010e96c]
add eax, 0xffffffd0
xor eax, 0xd81b7554
push ecx
mov ecx, esi
and dword [eax + esi], 0xfffffff7
mov eax, dword [0x1010e880]
call eax
mov eax, dword [0x1010e87c]
lea ecx, [ebp - 0xf20]
push ecx
mov ecx, esi
call eax
mov eax, dword [0x1010ea14]
mov ecx, 0xb6
vmovdqu ymm0, ymmword [ebp - 0xf88]
add eax, 0xffffffa6
xor eax, 0xd81b757e
vmovdqu ymmword [eax + esi], ymm0
vmovdqu ymm0, ymmword [ebp - 0xfa8]
vmovdqu ymmword [eax + esi + 0x20], ymm0
vmovdqu ymm0, ymmword [ebp - 0xfc8]
vmovdqu ymmword [eax + esi + 0x40], ymm0
mov edi, dword [0x1010e8ec]
lea esi, [ebp - 0x12a0]
mov eax, dword [ebp - 0xf54]
mov edi, dword [eax + edi]
rep movsd dword es:[edi], dword [esi]
mov byte [0x100f8fc0], 0
mov dword [eax + 0x260], ebx
mov al, 1
jmp 0x1002b162
xor al, al
vzeroupper
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100cd0ec
mov esp, ebp
pop ebp
ret 0x10