Function at 0x1003ec88
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
xor ebx, ebx
mov dword [esp + 8], 0x4161577
mov esi, ecx
mov dword [esp + 0xc], 0x1b142812
push edi
mov cl, 0x77
mov word [esp + 0x14], 0x1916
mov byte [esp + 0x16], bl
mov eax, ebx
xor byte [esp + eax + 0xd], cl
inc eax
cmp eax, 9
jae 0x1003ecc7
mov cl, byte [esp + 0xc]
jmp 0x1003ecb7
lea eax, [esp + 0xd]
mov byte [esp + 0x16], bl
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi]
lea edx, [esp + 0x20]
call fcn.10010042
xor edi, edi
mov dword [esi + 4], eax
push ebx
inc edi
lea ecx, [esp + 0x24]
push edi
call fcn.10001e1f
movaps xmm0, xmmword [0x1008f150]
mov ecx, ebx
movups xmmword [esp + 0xc], xmm0
mov byte [esp + 0x1c], bl
mov al, byte [esp + 0xc]
xor byte [esp + ecx + 0xd], al
inc ecx
cmp ecx, 0xf
jb 0x1003ed07
lea eax, [esp + 0xd]
mov byte [esp + 0x1c], bl
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push ebx
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 8], eax
call fcn.10001e1f
movaps xmm0, xmmword [0x1008f0e0]
mov ecx, ebx
movups xmmword [esp + 0xc], xmm0
mov byte [esp + 0x1c], bl
mov al, byte [esp + 0xc]
xor byte [esp + ecx + 0xd], al
inc ecx
cmp ecx, 0xf
jb 0x1003ed53
lea eax, [esp + 0xd]
mov byte [esp + 0x1c], bl
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push ebx
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0xc], eax
call fcn.10001e1f
movaps xmm0, xmmword [0x1008f250]
mov ecx, ebx
push 0x10
movups xmmword [esp + 0x10], xmm0
mov word [esp + 0x20], 7
pop ebx
mov al, byte [esp + 0xc]
xor byte [esp + ecx + 0xd], al
inc ecx
cmp ecx, ebx
jb 0x1003eda5
lea eax, [esp + 0xd]
mov byte [esp + 0x1d], 0
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push 0
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0x10], eax
call fcn.10001e1f
movaps xmm0, xmmword [0x1008ec50]
xor ecx, ecx
movups xmmword [esp + 0xc], xmm0
mov word [esp + 0x1c], 0x5f
mov al, byte [esp + 0xc]
xor byte [esp + ecx + 0xd], al
inc ecx
cmp ecx, ebx
jb 0x1003edf5
lea eax, [esp + 0xd]
mov byte [esp + 0x1d], 0
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push 0
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0x14], eax
call fcn.10001e1f
movaps xmm0, xmmword [0x1008f380]
xor ecx, ecx
movups xmmword [esp + 0xc], xmm0
mov byte [esp + 0x1c], 0
mov al, byte [esp + 0xc]
xor byte [esp + ecx + 0xd], al
inc ecx
cmp ecx, 0xf
jb 0x1003ee43
lea eax, [esp + 0xd]
mov byte [esp + 0x1c], 0
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push 0
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0x18], eax
call fcn.10001e1f
movaps xmm0, xmmword [0x1008f230]
xor ecx, ecx
movups xmmword [esp + 0xc], xmm0
mov byte [esp + 0x1c], 0
mov al, byte [esp + 0xc]
xor byte [esp + ecx + 0xd], al
inc ecx
cmp ecx, 0xf
jb 0x1003ee92
lea eax, [esp + 0xd]
mov byte [esp + 0x1c], 0
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push 0
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0x1c], eax
call fcn.10001e1f
mov cl, 0x75
mov dword [esp + 0xc], 0x12181c75
mov dword [esp + 0x10], 0x311142a
xor eax, eax
mov word [esp + 0x14], 0x442a
mov byte [esp + 0x16], 0
xor byte [esp + eax + 0xd], cl
inc eax
cmp eax, 9
jae 0x1003eefe
mov cl, byte [esp + 0xc]
jmp 0x1003eeee
lea eax, [esp + 0xd]
mov byte [esp + 0x16], 0
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push 0
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0x20], eax
call fcn.10001e1f
mov cl, 0x30
mov dword [esp + 0xc], 0x575d5930
mov dword [esp + 0x10], 0x4654516f
xor eax, eax
mov word [esp + 0x14], 0x26f
mov byte [esp + 0x16], 0
xor byte [esp + eax + 0xd], cl
inc eax
cmp eax, 9
jae 0x1003ef5c
mov cl, byte [esp + 0xc]
jmp 0x1003ef4c
lea eax, [esp + 0xd]
mov byte [esp + 0x16], 0
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push 0
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0x24], eax
call fcn.10001e1f
mov ecx, dword [esi + 0x20]
xor dl, dl
call fcn.10010276
mov ecx, dword [esi + 0x24]
xor dl, dl
call fcn.10010276
mov cl, 0x7d
mov dword [esp + 0xc], 0xe1c1f7d
mov dword [esp + 0x10], 0x14092218
xor eax, eax
mov byte [esp + 0x14], bl
mov word [esp + 0x15], 0x18
xor byte [esp + eax + 0xd], cl
inc eax
cmp eax, 9
jae 0x1003efcd
mov cl, byte [esp + 0xc]
jmp 0x1003efbd
lea eax, [esp + 0xd]
mov byte [esp + 0x16], 0
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 4]
lea edx, [esp + 0x20]
call fcn.10010042
push 0
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0x28], eax
call fcn.10001e1f
mov byte [esp + 0xc], bl
xor eax, eax
mov dword [esp + 0xd], 0x4f626463
mov dword [esp + 0x11], 0x757d7964
mov byte [esp + 0x15], 0
xor byte [esp + eax + 0xd], bl
inc eax
cmp eax, 8
jae 0x1003f026
mov bl, byte [esp + 0xc]
jmp 0x1003f016
lea eax, [esp + 0xd]
mov byte [esp + 0x15], 0
push eax
lea ecx, [esp + 0x24]
call fcn.10001f6a
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x20]
call fcn.10010042
push 0
push edi
lea ecx, [esp + 0x28]
mov dword [esi + 0x2c], eax
call fcn.10001e1f
mov ecx, dword [esi + 0x28]
xor dl, dl
call fcn.10010276
mov ecx, dword [esi]
push 0x14
pop edx
call fcn.10010397
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret