Function at 0x10017a41
Capabilities:
Encode data using xor

Disassembly:
push 0x64
mov eax, 0x1004dce3
call fcn.1004c68e
xor ebx, ebx
mov ecx, 0xff
mov edx, ebx
mov al, byte [edx + 0x10050d24]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x1c], al
and ecx, 0x800000ff
jns 0x10017a73
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 8
jl 0x10017a56
mov byte [ebp - 0x14], bl
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], ebx
push eax
call fcn.10029533
or esi, 0xffffffff
mov dword [ebp - 4], esi
movaps xmm0, xmmword [0x100568c0]
pop ecx
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x48], 0xd1c4d2fe
mov ecx, ebx
mov dword [ebp - 0x44], 0xc9d7e7d7
mov dword [ebp - 0x40], 0xcbc1dbd4
mov dword [ebp - 0x3c], 0x100dec2
lea eax, [ecx - 0x71]
xor byte [ebp + ecx - 0x58], al
inc ecx
cmp ecx, 0x1e
jb 0x10017ab8
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x39], bl
mov dword [ebp - 0x20], 0x12130c0d
mov dword [ebp - 0x1c], 0x16171011
mov dword [ebp - 0x18], 0x1b1415
mov byte [ebp - 0x14], 1
call fcn.10003485
push ecx
lea ecx, [ebp - 0x58]
mov edx, 0x100d0a74
push ecx
mov ecx, eax
call fcn.100305eb
pop ecx
pop ecx
push 0x5f
pop ecx
mov edx, ebx
mov al, byte [edx + 0x10050d30]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x34], al
and ecx, 0x800000ff
jns 0x10017b1e
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xf
jl 0x10017b01
mov byte [ebp - 0x25], bl
lea eax, [ebp - 0x34]
mov dword [ebp - 4], 1
push eax
call fcn.10029533
mov dword [ebp - 4], esi
movaps xmm0, xmmword [0x100568d0]
movups xmmword [ebp - 0x68], xmm0
pop ecx
movaps xmm0, xmmword [0x100563c0]
mov ecx, ebx
movups xmmword [ebp - 0x58], xmm0
mov word [ebp - 0x38], 0xdb
movaps xmm0, xmmword [0x10056510]
movups xmmword [ebp - 0x48], xmm0
mov byte [ebp - 0x36], 1
lea eax, [ecx - 0x71]
xor byte [ebp + ecx - 0x68], al
inc ecx
cmp ecx, 0x31
jb 0x10017b68
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x36], bl
mov dword [ebp - 0x1c], 0x130c0d0e
mov dword [ebp - 0x18], 0x17101112
mov word [ebp - 0x14], 0x100
call fcn.10002244
push ecx
lea ecx, [ebp - 0x68]
mov edx, 0x100d0a64
push ecx
mov ecx, eax
call fcn.100305eb
cmp dword [0x100d0a64], 7
pop ecx
pop ecx
jne 0x10017bfe
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0xe3e0decc
mov word [ebp - 0x18], 0xc9
mov byte [ebp - 0x16], 1
call fcn.1000213c
push ecx
mov dword [esp], 0x3f800000
lea ecx, [ebp - 0x6c]
push str._.3f
push ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0xc2480000
push ecx
push 0x1005a0b4
push 4
pop edx
mov ecx, eax
mov dword [ebp - 0x6c], 0x42480000
call fcn.1002b5ad
add esp, 0x14
mov ecx, 0x95
mov edx, ebx
mov al, byte [edx + 0x10050d40]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x10017c22
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0xe
jl 0x10017c05
mov byte [ebp - 0x16], bl
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 2
push eax
call fcn.10029533
pop ecx
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], 0x1112130c
mov dword [ebp - 0x1c], 0x15161710
mov dword [ebp - 0x18], 0x1001b14
call fcn.1000fc03
push ecx
push 0xa6
push 0x1005a9d0
push 0x100304ac
mov edx, 0x1005a0cc
mov ecx, eax
call fcn.10030507
add esp, 0x10
mov ecx, 0xf3
mov edx, ebx
mov al, byte [edx + 0x10050d50]
xor al, cl
inc ecx
mov byte [ebp + edx - 0x24], al
and ecx, 0x800000ff
jns 0x10017c9f
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x11
jl 0x10017c82
mov byte [ebp - 0x13], bl
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 3
push eax
call fcn.10029533
push 0x168
mov dword [ebp - 4], esi
push ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x130c0d0e
mov dword [ebp - 0x18], 0x101112
mov byte [ebp - 0x14], 1
call fcn.1000217e
mov esi, 0x1005a0c8
mov ecx, eax
mov edx, esi
call fcn.1002b937
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x34], 0x12130c0d
mov dword [ebp - 0x30], 0x16171011
mov dword [ebp - 0x2c], 0x1a1b1415
mov word [ebp - 0x28], 0x100
call fcn.100051f4
mov edx, esi
mov ecx, eax
call fcn.1002ff28
add esp, 0xc
call fcn.1004c64c
ret