Function at 0x100170b7
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 [0x10053df0]
lea ecx, [esp + 0x24]
push ebx
push esi
push edi
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0x7c617a
xor ebx, ebx
mov byte [esp + 0x44], 1
call fcn.1000eab7
movaps xmm0, xmmword [0x10054020]
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.1002779f
movaps xmm0, xmmword [0x10053cc0]
movups xmmword [esp + 0x50], xmm0
pop ecx
movaps xmm0, xmmword [str.67539_M_B__b_f]
movups xmmword [esp + 0x5c], xmm0
pop ecx
movaps xmm0, xmmword [0x100541d0]
mov ecx, ebx
movups xmmword [esp + 0x68], xmm0
mov dword [esp + 0x78], 0x355c4557
mov dword [esp + 0x7c], 0xe8eb1c1f
mov dword [esp + 0x80], 0x100e4ec
mov al, cl
add al, 0x4a
xor byte [esp + ecx + 0x48], al
inc ecx
cmp ecx, 0x3a
jb 0x10017158
lea ecx, [esp + 0x20]
mov byte [esp + 0x83], bl
mov dword [esp + 0x20], 0x223a6869
mov dword [esp + 0x24], 0x383b2a3a
mov dword [esp + 0x28], 0x1003831
call fcn.1000f866
push ecx
lea ecx, [esp + 0x4c]
mov edx, 0x100cea60
push ecx
mov ecx, eax
call fcn.1002e845
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 0x100171d1
and dword [esp + 0x20], ebx
lea ecx, [esp + 0x20]
and dword [esp + 0x24], ebx
xorps xmm1, xmm1
call fcn.1001cbe9
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0x28202e19
mov dword [esp + 0x24], 0x4703b2d
mov dword [esp + 0x28], 0x75263621
mov dword [esp + 0x2c], 0x100776c
call fcn.1001279e
movaps xmm0, xmmword [0x10054020]
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.1002779f
movaps xmm0, xmmword [str.ih:_:_8187:_57]
pop ecx
pop ecx
lea ecx, [esp + 0x30]
mov byte [esp + 0x40], 1
movups xmmword [esp + 0x30], xmm0
call fcn.1001277d
mov edx, dword [0x10058de0]
push ecx
mov ecx, eax
call fcn.1002e1f6
mov edi, 0x100ce918
pop ecx
test al, al
je 0x10017296
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.1002e893
pop ecx
pop ecx
test al, al
je 0x10017283
mov dword [0x10058de0], esi
mov dword [0x10059310], ebx
add esi, 0x12
inc ebx
cmp esi, 0x100cea5c
jl 0x1001725b
call fcn.1002286b
xor ebx, ebx
cmp byte [0x383d3888], 1
jne 0x10017310
movaps xmm0, xmmword [0x10053cd0]
lea ecx, [esp + 0x30]
and dword [esp + 0x20], 0
and dword [esp + 0x24], 0
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0x1002f29
call fcn.1000eb35
push ebx
lea edx, [esp + 0x24]
mov ecx, eax
call fcn.10027fd0
pop ecx
test al, al
je 0x10017310
mov esi, ebx
mov eax, 0x383b7e0c
mov ecx, dword [eax]
test ecx, ecx
je 0x10017304
mov eax, dword [0x100ce8e8]
push esi
call eax
test eax, eax
je 0x100172ff
push dword [eax]
add eax, 0x28
push eax
push edi
call fcn.100194e4
add esp, 0xc
mov eax, 0x383b7e0c
add edi, 0x12
inc esi
cmp edi, 0x100cea5c
jl 0x100172de
cmp dword [0x10059310], 0
je 0x1001734a
movaps xmm0, xmmword [str.jfrm]
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.1001277d
push ebx
lea edx, [esp + 0x24]
mov ecx, eax
call fcn.10027fd0
pop ecx
mov ecx, dword [esp + 0x84]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10046e46
mov esp, ebp
pop ebp
ret