Function at 0x100170bd
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [0x10058040]
xor eax, esp
mov dword [esp + 0x78], eax
movaps xmm0, xmmword [0x10053c80]
lea ecx, [esp + 0x24]
push ebx
push esi
push edi
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0x544952
xor ebx, ebx
mov byte [esp + 0x44], 1
call fcn.1000eab7
movaps xmm0, xmmword [0x10053f80]
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.100277ab
movaps xmm0, xmmword [0x10053b60]
movups xmmword [esp + 0x50], xmm0
pop ecx
movaps xmm0, xmmword [0x10054470]
movups xmmword [esp + 0x5c], xmm0
pop ecx
movaps xmm0, xmmword [0x10054290]
mov ecx, ebx
movups xmmword [esp + 0x68], xmm0
mov dword [esp + 0x78], 0xddb4adbf
mov dword [esp + 0x7c], 0xf0f3f4f7
mov dword [esp + 0x80], 0x100fcf4
mov al, cl
add al, 0x62
xor byte [esp + ecx + 0x48], al
inc ecx
cmp ecx, 0x3a
jb 0x1001715e
lea ecx, [esp + 0x20]
mov byte [esp + 0x83], bl
mov dword [esp + 0x20], 0xa124041
mov dword [esp + 0x24], 0x30212
mov dword [esp + 0x28], 0x1000009
call fcn.1000f86c
push ecx
lea ecx, [esp + 0x4c]
mov edx, 0x100cea60
push ecx
mov ecx, eax
call fcn.1002e851
pop ecx
pop ecx
mov ecx, dword [0x100cea84]
mov eax, dword [ecx + 0x1a20]
mov byte [eax + 0x78], 1
mov eax, dword [ecx + 0x1a20]
cmp byte [eax + 0x7b], bl
jne 0x100171d7
and dword [esp + 0x20], ebx
lea ecx, [esp + 0x20]
and dword [esp + 0x24], ebx
xorps xmm1, xmm1
call fcn.1001cbf0
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0x80631
mov dword [esp + 0x24], 0x3c481305
mov dword [esp + 0x28], 0x4d1e0e19
mov dword [esp + 0x2c], 0x1004f54
call fcn.100127a4
movaps xmm0, xmmword [0x10053f80]
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.100277ab
movaps xmm0, xmmword [0x100538a0]
pop ecx
pop ecx
lea ecx, [esp + 0x30]
mov byte [esp + 0x40], 1
movups xmmword [esp + 0x30], xmm0
call fcn.10012783
mov edx, dword [0x10058de0]
push ecx
mov ecx, eax
call fcn.1002e202
mov edi, 0x100ce918
pop ecx
test al, al
je 0x1001729c
and dword [esp + 0x20], ebx
mov esi, edi
and dword [esp + 0x24], ebx
cmp dword [0x10058de0], esi
lea eax, [esp + 0x20]
push eax
push ecx
sete dl
mov ecx, esi
call fcn.1002e89f
pop ecx
pop ecx
test al, al
je 0x10017289
mov dword [0x10058de0], esi
mov dword [0x10059310], ebx
add esi, 0x12
inc ebx
cmp esi, 0x100cea5c
jl 0x10017261
call fcn.10022874
xor ebx, ebx
cmp byte [0x383d3888], 1
jne 0x10017316
movaps xmm0, xmmword [0x10053b70]
lea ecx, [esp + 0x30]
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0x1000701
call fcn.1000eb35
push ebx
lea edx, [esp + 0x24]
mov ecx, eax
call fcn.10027fdc
pop ecx
test al, al
je 0x10017316
mov esi, ebx
mov eax, 0x383b7e0c
mov ecx, dword [eax]
test ecx, ecx
je 0x1001730a
mov eax, dword [0x100ce8e8]
push esi
call eax
test eax, eax
je 0x10017305
push dword [eax]
add eax, 0x28
push eax
push edi
call fcn.100194eb
add esp, 0xc
mov eax, 0x383b7e0c
add edi, 0x12
inc esi
cmp edi, 0x100cea5c
jl 0x100172e4
cmp dword [0x10059310], 0
je 0x10017350
movaps xmm0, xmmword [str.BNZE_]
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.10012783
push ebx
lea edx, [esp + 0x24]
mov ecx, eax
call fcn.10027fdc
pop ecx
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10046e52
mov esp, ebp
pop ebp
ret