Function at 0x1001804f
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 [0x10056610]
lea ecx, [esp + 0x24]
push ebx
push esi
push edi
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0xdac3d8
xor ebx, ebx
mov byte [esp + 0x44], 1
call fcn.1000ee4f
movaps xmm0, xmmword [0x10055e10]
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.100297bc
movaps xmm0, xmmword [0x100566e0]
movups xmmword [esp + 0x50], xmm0
pop ecx
movaps xmm0, xmmword [0x10056110]
movups xmmword [esp + 0x5c], xmm0
pop ecx
movaps xmm0, xmmword [str.fn_n2_]
mov ecx, ebx
movups xmmword [esp + 0x68], xmm0
mov dword [esp + 0x78], 0x533a2735
mov dword [esp + 0x7c], 0x76757e7d
mov dword [esp + 0x80], 0x100464e
mov al, cl
sub al, 0x18
xor byte [esp + ecx + 0x48], al
inc ecx
cmp ecx, 0x3a
jb 0x100180f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x83], bl
mov dword [esp + 0x20], 0x849ccacb
mov dword [esp + 0x24], 0x86858898
mov dword [esp + 0x28], 0x1009a93
call fcn.1000fc04
push ecx
lea ecx, [esp + 0x4c]
mov edx, 0x100d0c90
push ecx
mov ecx, eax
call fcn.10030862
pop ecx
pop ecx
mov ecx, dword [0x100d0cb4]
mov eax, dword [ecx + 0x1a20]
mov byte [eax + 0x78], 1
mov eax, dword [ecx + 0x1a20]
cmp byte [eax + 0x7b], bl
jne 0x10018169
and dword [esp + 0x20], ebx
lea ecx, [esp + 0x20]
and dword [esp + 0x24], ebx
xorps xmm1, xmm1
call fcn.1001ec06
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0x8e868cbb
mov dword [esp + 0x24], 0xbace998f
mov dword [esp + 0x28], 0xd3809483
mov dword [esp + 0x2c], 0x100d5ce
call fcn.10013164
movaps xmm0, xmmword [0x10055e10]
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.100297bc
movaps xmm0, xmmword [0x10055930]
pop ecx
pop ecx
lea ecx, [esp + 0x30]
mov byte [esp + 0x40], 1
movups xmmword [esp + 0x30], xmm0
call fcn.10013143
mov edx, dword [0x1005ade0]
push ecx
mov ecx, eax
call fcn.10030213
mov edi, 0x100d0b48
pop ecx
test al, al
je 0x1001822e
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.100308b0
pop ecx
pop ecx
test al, al
je 0x1001821b
mov dword [0x1005ade0], esi
mov dword [0x1005b418], ebx
add esi, 0x12
inc ebx
cmp esi, 0x100d0c8c
jl 0x100181f3
call fcn.10024888
xor ebx, ebx
cmp byte [0x383d3888], 1
jne 0x100182a3
movaps xmm0, xmmword [0x100566d0]
lea ecx, [esp + 0x30]
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0x1008d8b
call fcn.1000eecd
push ebx
lea edx, [esp + 0x24]
mov ecx, eax
call fcn.10029fed
pop ecx
test al, al
je 0x100182a3
mov esi, ebx
mov eax, dword [0x1005b2ec]
mov ecx, dword [eax]
test ecx, ecx
je 0x10018297
mov eax, dword [0x100d0b0c]
push esi
call eax
test eax, eax
je 0x10018297
push dword [eax]
add eax, 0x28
push eax
push edi
call fcn.1001b43a
add esp, 0xc
add edi, 0x12
inc esi
cmp edi, 0x100d0c8c
jl 0x10018271
cmp dword [0x1005b418], 0
je 0x100182e6
movaps xmm0, xmmword [0x10055960]
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.10013143
push ebx
lea edx, [esp + 0x24]
mov ecx, eax
call fcn.10029fed
test al, al
pop ecx
setne byte [0x100d0af0]
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10048e36
mov esp, ebp
pop ebp
ret