Function at 0x10029eb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x1003f00c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1003f8dc]
movaps xmm0, xmmword [0x1003bff0]
push esi
movups xmmword [ebp - 0x2c], xmm0
mov esi, dword [eax + ecx*4]
movaps xmm0, xmmword [0x1003b780]
mov eax, dword [0x10112590]
movups xmmword [ebp - 0x1c], xmm0
mov word [ebp - 0xc], 0x4c08
cmp eax, dword [esi + 4]
jle 0x10029f3c
push 0x10112590
call fcn.10031abc
add esp, 4
cmp dword [0x10112590], 0xffffffff
jne 0x10029f3c
push 0x22
lea eax, [ebp - 0x2c]
push eax
push 0x10112b6c
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x100347f0
call fcn.10031ee1
add esp, 4
push 0x10112590
call fcn.10031a72
add esp, 4
cmp byte [0x10112b8d], 0
je 0x10029f7f
movaps xmm2, xmmword [0x1003be00]
xor eax, eax
nop
movups xmm0, xmmword [eax + 0x10112b6c]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x10112b6c], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x10029f50
cmp eax, 0x22
jae 0x10029f7f
xor byte [eax + 0x10112b6c], 0x4c
inc eax
cmp eax, 0x22
jb 0x10029f72
mov edx, 0x10041422
mov ecx, 0x10112b6c
call fcn.10012cf0
movaps xmm0, xmmword [0x1003bff0]
mov eax, dword [0x10113500]
movups xmmword [ebp - 0x2c], xmm0
mov word [ebp - 0xc], 0x383f
movaps xmm0, xmmword [0x1003b8b0]
movups xmmword [ebp - 0x1c], xmm0
mov byte [ebp - 0xa], 0x4c
cmp eax, dword [esi + 4]
jle 0x10029ffe
push 0x10113500
call fcn.10031abc
add esp, 4
cmp dword [0x10113500], 0xffffffff
jne 0x10029ffe
push 0x23
lea eax, [ebp - 0x2c]
push eax
push 0x10113408
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x100347c0
call fcn.10031ee1
add esp, 4
push 0x10113500
call fcn.10031a72
add esp, 4
cmp byte [0x1011342a], 0
je 0x1002a03f
movaps xmm2, xmmword [0x1003be00]
xor eax, eax
movups xmm0, xmmword [eax + 0x10113408]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x10113408], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x1002a010
cmp eax, 0x23
jae 0x1002a03f
xor byte [eax + 0x10113408], 0x4c
inc eax
cmp eax, 0x23
jb 0x1002a032
mov edx, 0x10041421
mov ecx, 0x10113408
call fcn.10012cf0
movaps xmm0, xmmword [0x1003bff0]
mov eax, dword [0x10112bfc]
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0xc], 0x4c3e2d28
movaps xmm0, xmmword [0x1003b970]
movups xmmword [ebp - 0x1c], xmm0
cmp eax, dword [esi + 4]
jle 0x1002a0bb
push 0x10112bfc
call fcn.10031abc
add esp, 4
cmp dword [0x10112bfc], 0xffffffff
jne 0x1002a0bb
push 0x24
lea eax, [ebp - 0x2c]
push eax
push 0x10112a68
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x100347a0
call fcn.10031ee1
add esp, 4
push 0x10112bfc
call fcn.10031a72
add esp, 4
cmp byte [0x10112a8b], 0
je 0x1002a0ff
movaps xmm2, xmmword [0x1003be00]
xor eax, eax
nop dword [eax]
movups xmm0, xmmword [eax + 0x10112a68]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [eax + 0x10112a68], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x1002a0d0
cmp eax, 0x24
jae 0x1002a0ff
xor byte [eax + 0x10112a68], 0x4c
inc eax
cmp eax, 0x24
jb 0x1002a0f2
mov edx, 0x10041423
mov ecx, 0x10112a68
call fcn.10012cf0
movd xmm0, dword [0x10041424]
lea edx, [ebp - 8]
movss xmm3, dword [0x1003b53c]
xorps xmm2, xmm2
cvtdq2ps xmm0, xmm0
push ecx
mov dword [esp], 0x3f800000
mov ecx, str.
push str._.0f__
movss dword [ebp - 8], xmm0
call fcn.10012860
cvttss2si eax, dword [ebp - 8]
mov ecx, dword [0x1003f068]
add esp, 8
mov dword [0x10041424], eax
mov eax, dword [ecx + 0x1730]
mov byte [eax + 0x72], 1
mov ecx, dword [ecx + 0x1730]
cmp byte [ecx + 0x74], 0
jne 0x1002a1b5
movss xmm2, dword [ecx + 0x14]
xorps xmm0, xmm0
subss xmm2, dword [ecx + 0x48]
movss xmm1, dword [ecx + 0xb0]
addss xmm2, dword [0x1003b558]
addss xmm2, xmm0
movss dword [ecx + 0xa4], xmm2
movss dword [ecx + 0xa8], xmm1
mov eax, dword [ecx + 0xdc]
mov dword [ecx + 0xd4], eax
mov eax, dword [ecx + 0xe0]
mov dword [ecx + 0xd8], eax
movss xmm0, dword [0x1003b53c]
call fcn.10010510
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.10031912
mov esp, ebp
pop ebp
ret