Function at 0x10012749
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push 0x2f
mov esi, ecx
mov dword [ebp - 0x12], 0x2e122339
mov cl, 0x4d
mov dword [ebp - 0xe], 0x283e2221
pop ebx
mov byte [ebp - 0x14], cl
xor edx, edx
mov byte [ebp - 0x13], bl
mov byte [ebp - 0xa], 0
xor cl, byte [ebp + edx - 0x13]
mov byte [ebp + edx - 0x13], cl
inc edx
cmp edx, 9
jae 0x10012785
mov cl, byte [ebp - 0x14]
jmp 0x10012772
sub esp, 0x18
mov byte [ebp - 0xa], 0
lea eax, [ebp - 0x13]
mov ecx, esp
push eax
call fcn.10004179
mov ecx, dword [esi + 0x20]
call fcn.1000d3df
add esp, 0x18
mov dword [esi], eax
mov cl, 0x18
mov dword [ebp - 0x14], 0x766c7a18
mov dword [ebp - 0x10], 0x796c6b47
xor edx, edx
mov word [ebp - 0xc], 0x6c6a
mov byte [ebp - 0xa], 0
xor cl, byte [ebp + edx - 0x13]
mov byte [ebp + edx - 0x13], cl
inc edx
cmp edx, 9
jae 0x100127d3
mov cl, byte [ebp - 0x14]
jmp 0x100127c0
sub esp, 0x18
mov byte [ebp - 0xa], 0
lea eax, [ebp - 0x13]
mov ecx, esp
push eax
call fcn.10004179
mov ecx, dword [esi + 0x20]
call fcn.1000d3df
add esp, 0x18
mov dword [esi + 4], eax
mov cl, 0x70
mov dword [ebp - 0x14], 0x1e041270
mov byte [ebp - 0x10], bl
xor edx, edx
mov dword [ebp - 0xf], 0x1f0403
mov byte [ebp - 0xb], 0
xor cl, byte [ebp + edx - 0x13]
mov byte [ebp + edx - 0x13], cl
inc edx
cmp edx, 8
jae 0x1001281f
mov cl, byte [ebp - 0x14]
jmp 0x1001280c
sub esp, 0x18
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0x13]
mov ecx, esp
push eax
call fcn.10004179
mov ecx, dword [esi + 0x20]
call fcn.1000d3df
movaps xmm0, xmmword [0x1008aa90]
add esp, 0x18
mov dword [esi + 8], eax
xor edx, edx
movups xmmword [ebp - 0x1c], xmm0
mov word [ebp - 0xc], 0x3d3f
mov byte [ebp - 0xa], 0
mov cl, byte [ebp - 0x1c]
xor byte [ebp + edx - 0x1b], cl
inc edx
cmp edx, 0x11
jb 0x10012856
sub esp, 0x18
mov byte [ebp - 0xa], 0
lea eax, [ebp - 0x1b]
mov ecx, esp
push eax
call fcn.10004179
mov ecx, dword [esi + 0x20]
call fcn.1000d3df
add esp, 0x18
mov dword [esi + 0xc], eax
mov dl, 0x51
mov dword [ebp - 0x18], 0x3f253351
mov dword [ebp - 0x14], 0x3e25220e
xor ecx, ecx
mov dword [ebp - 0x10], 0x380e3a32
mov word [ebp - 0xc], 0x3f3f
mov byte [ebp - 0xa], 0
xor dl, byte [ebp + ecx - 0x17]
mov byte [ebp + ecx - 0x17], dl
inc ecx
cmp ecx, 0xd
jae 0x100128b9
mov dl, byte [ebp - 0x18]
jmp 0x100128a6
sub esp, 0x18
mov byte [ebp - 0xa], 0
lea eax, [ebp - 0x17]
mov ecx, esp
push eax
call fcn.10004179
mov ecx, dword [esi + 0x20]
call fcn.1000d3df
add esp, 0x18
mov dword [esi + 0x10], eax
mov byte [ebp - 0x14], bl
xor ecx, ecx
mov dword [ebp - 0x13], 0x70415b4d
mov dword [ebp - 0xf], 0x43434a5c
mov byte [ebp - 0xb], 0
xor bl, byte [ebp + ecx - 0x13]
mov byte [ebp + ecx - 0x13], bl
inc ecx
cmp ecx, 8
jae 0x10012903
mov bl, byte [ebp - 0x14]
jmp 0x100128f0
sub esp, 0x18
lea eax, [ebp - 0x13]
mov ecx, esp
xor ebx, ebx
mov byte [ebp - 0xb], bl
push eax
call fcn.10004179
mov ecx, dword [esi + 0x20]
call fcn.1000d3df
movaps xmm0, xmmword [0x1008a5f0]
add esp, 0x18
mov dword [esi + 0x14], eax
mov ecx, ebx
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0xc], 0x51f041e
mov byte [ebp - 8], bl
mov al, byte [ebp - 0x1c]
xor byte [ebp + ecx - 0x1b], al
inc ecx
cmp ecx, 0x13
jb 0x1001293b
sub esp, 0x18
mov byte [ebp - 8], bl
lea eax, [ebp - 0x1b]
mov ecx, esp
push eax
call fcn.10004179
mov ecx, dword [esi + 0x20]
call fcn.1000d3df
add esp, 0x18
mov dword [esi + 0x18], eax
mov ecx, eax
push 3
pop edx
call fcn.1000d99a
pop esi
pop ebx
mov esp, ebp
pop ebp
ret