Function at 0x10012632
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov esi, ecx
call fcn.100131ac
push 0x72
pop ebx
mov dl, 2
mov dword [ebp - 0x18], 0x6d706502
mov byte [ebp - 0x14], 0x77
xor ecx, ecx
mov byte [ebp - 0x13], bl
mov word [ebp - 0x12], 0x6d5d
mov byte [ebp - 0x10], bl
mov dword [ebp - 0xf], 0x6c6d6b76
mov byte [ebp - 0xb], 0
xor byte [ebp + ecx - 0x17], dl
inc ecx
cmp ecx, 0xc
jae 0x1001267a
mov dl, byte [ebp - 0x18]
jmp 0x1001266b
sub esp, 0x18
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0x17]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, dword [esi + 0x10]
call fcn.1000bbd7
movaps xmm0, xmmword [0x10087fb0]
add esp, 0x18
mov edi, eax
mov dword [ebp - 0xc], 0x6f787e7d
movups xmmword [ebp - 0x1c], xmm0
mov byte [ebp - 8], 0
xor edx, edx
mov cl, byte [ebp - 0x1c]
xor byte [ebp + edx - 0x1b], cl
inc edx
cmp edx, 0x13
jb 0x100126b1
sub esp, 0x18
mov byte [ebp - 8], 0
lea eax, [ebp - 0x1b]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
movaps xmm0, xmmword [0x100870a0]
add esp, 0x18
mov edi, eax
xor edx, edx
movups xmmword [ebp - 0x18], xmm0
mov cl, byte [ebp - 0x18]
xor byte [ebp + edx - 0x17], cl
inc edx
cmp edx, 0xe
jb 0x100126e9
sub esp, 0x18
mov byte [ebp - 9], 0
lea eax, [ebp - 0x17]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
add esp, 0x18
mov dword [esi], eax
test eax, eax
je 0x10012726
cmp dword [0x10099f68], 1
sete byte [0x10095c53]
movaps xmm0, xmmword [0x10087da0]
xor ecx, ecx
movups xmmword [ebp - 0x1c], xmm0
mov word [ebp - 0xc], 0x6069
mov byte [ebp - 0xa], 0
mov al, byte [ebp + ecx - 0x1b]
xor al, byte [ebp - 0x1c]
mov byte [ebp + ecx - 0x1b], al
inc ecx
cmp ecx, 0x11
jb 0x1001273d
sub esp, 0x18
mov byte [ebp - 0xa], 0
lea eax, [ebp - 0x1b]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
movaps xmm0, xmmword [0x10087de0]
add esp, 0x18
mov dword [esi + 4], eax
xor ecx, ecx
movups xmmword [ebp - 0x18], xmm0
mov byte [ebp - 8], 0
mov al, byte [ebp + ecx - 0x17]
xor al, byte [ebp - 0x18]
mov byte [ebp + ecx - 0x17], al
inc ecx
cmp ecx, 0xf
jb 0x1001277e
sub esp, 0x18
mov byte [ebp - 8], 0
lea eax, [ebp - 0x17]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
movaps xmm0, xmmword [0x10087340]
add esp, 0x18
mov dword [esi + 8], eax
xor ecx, ecx
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0xc], 0x160107
mov al, byte [ebp + ecx - 0x1b]
xor al, byte [ebp - 0x1c]
mov byte [ebp + ecx - 0x1b], al
inc ecx
cmp ecx, 0x12
jb 0x100127c2
sub esp, 0x18
mov byte [ebp - 9], 0
lea eax, [ebp - 0x1b]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
movaps xmm0, xmmword [0x10087230]
add esp, 0x18
mov dword [esi + 0xc], eax
xor ecx, ecx
movups xmmword [ebp - 0x18], xmm0
mov al, byte [ebp + ecx - 0x17]
xor al, byte [ebp - 0x18]
mov byte [ebp + ecx - 0x17], al
inc ecx
cmp ecx, 0xe
jb 0x100127ff
sub esp, 0x18
mov byte [ebp - 9], 0
lea eax, [ebp - 0x17]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
movaps xmm0, xmmword [str.x_ve_n]
add esp, 0x18
mov dword [esi + 0x1c], eax
xor ecx, ecx
movups xmmword [ebp - 0x1c], xmm0
mov word [ebp - 0xc], 0x1d
mov al, byte [ebp + ecx - 0x1b]
xor al, byte [ebp - 0x1c]
mov byte [ebp + ecx - 0x1b], al
inc ecx
cmp ecx, 0x10
jb 0x10012842
sub esp, 0x18
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0x1b]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
add esp, 0x18
mov dword [esi + 0x14], eax
test eax, eax
je 0x10012880
push 0x17
mov ecx, eax
call fcn.1000c563
pop ecx
mov byte [ebp - 0x14], bl
xor ecx, ecx
mov dword [ebp - 0x13], 0x60a1706
mov dword [ebp - 0xf], 0x1f13112d
mov dword [ebp - 0xb], 0x130017
xor byte [ebp + ecx - 0x13], bl
inc ecx
cmp ecx, 0xb
jae 0x100128a9
mov bl, byte [ebp - 0x14]
jmp 0x1001289a
sub esp, 0x18
lea eax, [ebp - 0x13]
mov ecx, esp
xor ebx, ebx
mov byte [ebp - 8], bl
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
mov dword [esi + 0x20], eax
add esp, 0x18
mov cl, 0x61
mov dword [ebp - 0x18], 0x13021261
mov dword [ebp - 0x14], 0x3e0d0d0e
mov eax, ebx
mov dword [ebp - 0x10], 0x40c0002
mov word [ebp - 0xc], 0x13
mov byte [ebp - 0xa], bl
xor byte [ebp + eax - 0x17], cl
inc eax
cmp eax, 0xd
jae 0x100128fa
mov cl, byte [ebp - 0x18]
jmp 0x100128eb
sub esp, 0x18
mov byte [ebp - 0xa], bl
lea eax, [ebp - 0x17]
mov ecx, esp
push eax
call fcn.10002907
mov ecx, edi
call fcn.1000bbd7
add esp, 0x18
mov dword [esi + 0x18], eax
test eax, eax
je 0x10012926
push 0x14
mov ecx, eax
call fcn.1000c563
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret