Function at 0x1001822b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x1005a040]
xor eax, esp
mov dword [esp + 0x78], eax
movaps xmm0, xmmword [0x100566d0]
lea ecx, [esp + 0x24]
push ebx
push esi
push edi
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0x819abf
xor ebx, ebx
mov byte [esp + 0x44], 1
call fcn.1000ee54
movaps xmm0, xmmword [0x10055c30]
lea esi, [esp + 0x20]
movups xmmword [esp + 0x20], xmm0
lea edi, [esp + 0x10]
movsd dword es:[edi], dword [esi]
push eax
lea eax, [esp + 0x14]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10029545
movaps xmm0, xmmword [0x10056810]
movups xmmword [esp + 0x50], xmm0
pop ecx
movaps xmm0, xmmword [0x100562e0]
movups xmmword [esp + 0x5c], xmm0
pop ecx
movaps xmm0, xmmword [0x100561a0]
mov ecx, ebx
movups xmmword [esp + 0x68], xmm0
mov dword [esp + 0x78], 0x8ae1fe92
mov dword [esp + 0x7c], 0xafaea7a2
mov dword [esp + 0x80], 0x100afa9
mov al, cl
sub al, 0x71
xor byte [esp + ecx + 0x48], al
inc ecx
cmp ecx, 0x3a
jb 0x100182cc
lea ecx, [esp + 0x20]
mov byte [esp + 0x83], bl
mov dword [esp + 0x20], 0xfde7b3ac
mov dword [esp + 0x24], 0xfffef1e7
mov dword [esp + 0x28], 0x100f3f4
call fcn.1000fc03
push ecx
lea ecx, [esp + 0x4c]
mov edx, 0x100d0c80
push ecx
mov ecx, eax
call fcn.100305eb
pop ecx
pop ecx
mov ecx, dword [0x100d0ca4]
mov eax, dword [ecx + 0x1a20]
mov byte [eax + 0x78], 1
mov eax, dword [ecx + 0x1a20]
cmp byte [eax + 0x7b], bl
jne 0x10018345
and dword [esp + 0x20], ebx
lea ecx, [esp + 0x20]
and dword [esp + 0x24], ebx
xorps xmm1, xmm1
call fcn.1001e98f
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0xf7fdf5dc
mov dword [esp + 0x24], 0xc3b5e0f0
mov dword [esp + 0x28], 0xbaebfde4
mov dword [esp + 0x2c], 0x100bca1
call fcn.10013163
movaps xmm0, xmmword [0x10055c30]
lea esi, [esp + 0x10]
movups xmmword [esp + 0x10], xmm0
lea edi, [esp + 0x30]
movsd dword es:[edi], dword [esi]
push eax
lea eax, [esp + 0x34]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10029545
movaps xmm0, xmmword [0x100559b0]
pop ecx
pop ecx
lea ecx, [esp + 0x30]
mov byte [esp + 0x40], 1
movups xmmword [esp + 0x30], xmm0
call fcn.10013142
mov edx, dword [0x1005ade0]
push ecx
mov ecx, eax
call fcn.1002ff9c
mov edi, 0x100d0b38
pop ecx
test al, al
je 0x1001840a
and dword [esp + 0x20], ebx
mov esi, edi
and dword [esp + 0x24], ebx
cmp dword [0x1005ade0], esi
lea eax, [esp + 0x20]
push eax
push ecx
sete dl
mov ecx, esi
call fcn.10030639
pop ecx
pop ecx
test al, al
je 0x100183f7
mov dword [0x1005ade0], esi
mov dword [0x1005b418], ebx
add esi, 0x12
inc ebx
cmp esi, 0x100d0c7c
jl 0x100183cf
call fcn.10024611
xor ebx, ebx
cmp byte [0x383d3888], 1
jne 0x1001847f
movaps xmm0, xmmword [0x10056800]
lea ecx, [esp + 0x30]
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0x100d4ec
call fcn.1000eed2
push ebx
lea edx, [esp + 0x24]
mov ecx, eax
call fcn.10029d76
pop ecx
test al, al
je 0x1001847f
mov esi, ebx
mov eax, dword [0x1005b2ec]
mov ecx, dword [eax]
test ecx, ecx
je 0x10018473
mov eax, dword [0x100d0b04]
push esi
call eax
test eax, eax
je 0x10018473
push dword [eax]
add eax, 0x28
push eax
push edi
call fcn.1001b1c4
add esp, 0xc
add edi, 0x12
inc esi
cmp edi, 0x100d0c7c
jl 0x1001844d
cmp dword [0x1005b418], 0
je 0x100184c2
movaps xmm0, xmmword [0x10055900]
lea ecx, [esp + 0x30]
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
movups xmmword [esp + 0x30], xmm0
mov byte [esp + 0x40], 1
call fcn.10013142
push ebx
lea edx, [esp + 0x24]
mov ecx, eax
call fcn.10029d76
test al, al
pop ecx
setne byte [0x100d0ae8]
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10048bd7
mov esp, ebp
pop ebp
ret