Function at 0x10178710
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x1c8
mov eax, dword [0x101f9834]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
push esi
push edi
movups xmm6, xmmword [ecx + 0x70]
movups xmm4, xmmword [ecx]
lea edx, [eax + 0x390]
movups xmm7, xmmword [ecx + 0x60]
lea edi, [eax + 0x410]
movups xmm0, xmmword [ecx + 0x30]
movaps xmm5, xmm6
movups xmm1, xmmword [ecx + 0x10]
paddw xmm5, xmm4
movups xmm3, xmmword [ecx + 0x20]
movups xmm2, xmmword [ecx + 0x40]
movaps xmmword [ebp - 0x60], xmm0
movups xmm0, xmmword [ecx + 0x50]
movaps xmmword [ebp - 0x40], xmm0
movaps xmmword [ebp - 0x90], xmm4
movaps xmm4, xmm7
paddw xmm4, xmm1
movaps xmmword [ebp - 0x80], xmm1
movaps xmm1, xmm0
movaps xmmword [ebp - 0x70], xmm3
movups xmm0, xmmword [ecx + 0x30]
paddw xmm1, xmm3
paddw xmm0, xmm2
movaps xmmword [ebp - 0x50], xmm2
movaps xmm3, xmm0
mov al, byte [eax + 0x4f1]
movaps xmm2, xmm1
movaps xmmword [ebp - 0x30], xmm7
paddw xmm2, xmm4
mov byte [ebp - 0x111], al
psubw xmm4, xmm1
movaps xmmword [ebp - 0x20], xmm6
paddw xmm3, xmm5
psubw xmm5, xmm0
paddw xmm4, xmm5
movaps xmm1, xmm4
movaps xmm0, xmm4
pmulhw xmm0, xmmword [0x101f9270]
pmullw xmm1, xmmword [0x101f9270]
psrlw xmm1, 0xf
paddw xmm1, xmm0
movaps xmm0, xmm2
paddw xmm0, xmm3
psubw xmm4, xmm1
movups xmm1, xmmword [ecx + 0x10]
psubw xmm3, xmm2
movups xmm2, xmmword [ecx]
psubw xmm1, xmm7
movaps xmmword [ebp - 0x110], xmm0
movaps xmm7, xmm1
movaps xmm0, xmm4
movaps xmmword [ebp - 0xd0], xmm3
paddw xmm0, xmm5
psubw xmm2, xmm6
movaps xmmword [ebp - 0xf0], xmm0
psubw xmm5, xmm4
movups xmm0, xmmword [ecx + 0x20]
psubw xmm0, xmmword [ecx + 0x50]
movups xmm4, xmmword [ecx + 0x30]
paddw xmm7, xmm0
psubw xmm4, xmmword [ecx + 0x40]
paddw xmm4, xmm0
movaps xmmword [ebp - 0x1a0], xmm2
paddw xmm2, xmm1
movaps xmmword [ebp - 0xb0], xmm5
movaps xmm0, xmm4
movaps xmm1, xmm7
pmullw xmm1, xmmword [0x101f9270]
psubw xmm0, xmm2
movaps xmm3, xmm0
pmulhw xmm0, xmmword [0x101f9240]
pmullw xmm3, xmmword [0x101f9240]
psrlw xmm1, 0xf
psrlw xmm3, 0xf
paddw xmm3, xmm0
movaps xmm0, xmm7
pmulhw xmm0, xmmword [0x101f9270]
movaps xmm6, xmmword [0x101f90a0]
lea eax, [ebp - 0x110]
paddw xmm1, xmm0
movaps xmm5, xmm2
pmullw xmm5, xmmword [0x101f9250]
movaps xmm0, xmm2
pmulhw xmm0, xmmword [0x101f9250]
psubw xmm7, xmm1
movaps xmm1, xmm4
paddw xmm7, xmm6
pmullw xmm1, xmmword [0x101f9260]
mov esi, 4
psraw xmm7, 2
psrlw xmm5, 0xf
movaps xmmword [ebp - 0x140], xmm7
paddw xmm5, xmm0
movaps xmm0, xmm4
pmulhw xmm0, xmmword [0x101f9260]
paddw xmm5, xmm2
movaps xmm2, xmmword [ebp - 0x1a0]
paddw xmm5, xmm3
psrlw xmm1, 0xf
paddw xmm5, xmm6
paddw xmm2, xmm6
psraw xmm5, 2
psraw xmm2, 2
paddw xmm1, xmm0
psubw xmm4, xmm1
paddw xmm4, xmm3
paddw xmm4, xmm6
psraw xmm4, 2
lea eax, [eax + 0x20]
movaps xmm0, xmm6
paddw xmm0, xmmword [eax - 0x20]
psraw xmm0, 2
movups xmmword [eax - 0x20], xmm0
sub esi, 1
jne 0x10178933
movaps xmm1, xmmword [ebp - 0x140]
movaps xmm6, xmm5
movaps xmm0, xmm1
paddw xmm6, xmm7
paddw xmm0, xmm4
paddw xmm6, xmm2
psubw xmm4, xmm1
movaps xmmword [ebp - 0x80], xmm6
psubw xmm1, xmm5
paddw xmm4, xmm2
paddw xmm1, xmm2
movaps xmmword [ebp - 0x1a0], xmm4
movaps xmmword [ebp - 0x140], xmm1
movaps xmm7, xmm2
psubw xmm7, xmm0
movaps xmmword [ebp - 0x20], xmm1
movaps xmm1, xmmword [ebp - 0x110]
movaps xmm3, xmm6
punpcklwd xmm3, xmmword [ebp - 0x1a0]
movaps xmm5, xmm1
punpckhwd xmm1, xmmword [ebp - 0xd0]
movaps xmm0, xmm3
punpcklwd xmm5, xmmword [ebp - 0xd0]
punpckhwd xmm6, xmmword [ebp - 0x1a0]
movaps xmmword [ebp - 0x150], xmm1
movaps xmm1, xmm7
punpcklwd xmm1, xmmword [ebp - 0x140]
punpcklwd xmm0, xmm1
movaps xmmword [ebp - 0x40], xmm4
movaps xmm4, xmmword [ebp - 0xf0]
movaps xmmword [ebp - 0x160], xmm5
movaps xmm2, xmm4
punpcklwd xmm2, xmmword [ebp - 0xb0]
punpckhwd xmm4, xmmword [ebp - 0xb0]
punpcklwd xmm5, xmm2
movaps xmmword [ebp - 0x170], xmm6
movaps xmm6, xmm5
punpckhwd xmm5, xmm0
punpcklwd xmm6, xmm0
movaps xmm0, xmmword [ebp - 0x160]
punpckhwd xmm0, xmm2
punpckhwd xmm3, xmm1
movaps xmm2, xmm0
movaps xmm1, xmmword [ebp - 0x150]
punpckhwd xmm0, xmm3
movaps xmmword [ebp - 0x160], xmm0
movaps xmm0, xmmword [ebp - 0x170]
movaps xmmword [ebp - 0x60], xmm7
punpckhwd xmm7, xmmword [ebp - 0x140]
punpcklwd xmm0, xmm7
movaps xmmword [ebp - 0x140], xmm5
movaps xmm5, xmm1
punpcklwd xmm5, xmm4
movaps xmmword [ebp - 0x1a0], xmm6
movaps xmm6, xmm5
punpcklwd xmm6, xmm0
punpckhwd xmm5, xmm0
movaps xmm0, xmmword [ebp - 0x170]
punpckhwd xmm0, xmm7
punpckhwd xmm1, xmm4
movaps xmm4, xmm1
punpcklwd xmm2, xmm3
punpckhwd xmm1, xmm0
punpcklwd xmm4, xmm0
movaps xmm0, xmm1
paddw xmm0, xmmword [ebp - 0x1a0]
movaps xmm3, xmm4
paddw xmm3, xmmword [ebp - 0x140]
movaps xmmword [ebp - 0x150], xmm1
movaps xmm1, xmm6
paddw xmm1, xmmword [ebp - 0x160]
psraw xmm0, 1
psraw xmm1, 1
movaps xmmword [ebp - 0x130], xmm0
movaps xmm0, xmm5
paddw xmm0, xmm2
movaps xmmword [ebp - 0x1b0], xmm2
movaps xmm2, xmm1
psraw xmm3, 1
paddw xmm2, xmmword [ebp - 0x130]
psraw xmm0, 1
movaps xmm7, xmmword [ebp - 0x130]
psubw xmm7, xmm1
movaps xmmword [ebp - 0x170], xmm2
movaps xmm2, xmm0
movaps xmmword [ebp - 0x130], xmm7
movaps xmm7, xmmword [ebp - 0x170]
paddw xmm2, xmm3
psubw xmm3, xmm0
paddw xmm3, xmmword [ebp - 0x130]
movaps xmm1, xmm3
movaps xmm0, xmm3
pmullw xmm1, xmmword [0x101f9270]
pmulhw xmm0, xmmword [0x101f9270]
psrlw xmm1, 0xf
paddw xmm1, xmm0
movaps xmm0, xmm2
psubw xmm3, xmm1
paddw xmm0, xmm7
movaps xmm1, xmmword [ebp - 0x130]
psubw xmm7, xmm2
movaps xmmword [ebp - 0x1c0], xmm0
movaps xmm0, xmm3
paddw xmm0, xmm1
movaps xmmword [ebp - 0x170], xmm7
movaps xmm7, xmmword [ebp - 0x140]
psubw xmm1, xmm3
movaps xmmword [ebp - 0x130], xmm1
psubw xmm7, xmm4
movaps xmm1, xmmword [ebp - 0x160]
movaps xmm4, xmmword [ebp - 0x1a0]
psubw xmm1, xmm6
psubw xmm4, xmmword [ebp - 0x150]
movaps xmmword [ebp - 0x160], xmm1
movaps xmm3, xmm4
movaps xmm6, xmmword [ebp - 0x160]
paddw xmm3, xmm7
movaps xmmword [ebp - 0x190], xmm0
movaps xmm0, xmmword [ebp - 0x1b0]
psubw xmm0, xmm5
psraw xmm3, 1
paddw xmm6, xmm0
psraw xmm4, 1
psraw xmm6, 1
movaps xmm5, xmm7
paddw xmm5, xmm0
movaps xmm0, xmm6
psraw xmm5, 1
psubw xmm0, xmm3
movaps xmm1, xmm6
pmullw xmm1, xmmword [0x101f9260]
movaps xmm2, xmm0
pmulhw xmm0, xmmword [0x101f9240]
pmullw xmm2, xmmword [0x101f9240]
psrlw xmm1, 0xf
psrlw xmm2, 0xf
paddw xmm2, xmm0
movaps xmm0, xmm6
pmulhw xmm0, xmmword [0x101f9260]
paddw xmm1, xmm0
movaps xmm0, xmm5
pmulhw xmm0, xmmword [0x101f9270]
psubw xmm6, xmm1
movaps xmm1, xmm5
paddw xmm6, xmm2
pmullw xmm1, xmmword [0x101f9270]
psrlw xmm1, 0xf
paddw xmm1, xmm0
movaps xmm0, xmm3
pmulhw xmm0, xmmword [0x101f9250]
psubw xmm5, xmm1
movaps xmm1, xmm3
pmullw xmm1, xmmword [0x101f9250]
psrlw xmm1, 0xf
paddw xmm1, xmm0
movaps xmm0, xmm5
paddw xmm1, xmm3
paddw xmm1, xmm2
movaps xmm2, xmm4
movaps xmm3, xmm1
paddw xmm3, xmm5
paddw xmm3, xmm4
cmp byte [ebx + 0x10], 0
paddw xmm0, xmm6
movaps xmm7, xmmword [ebp - 0x1c0]
psubw xmm6, xmm5
psubw xmm5, xmm1
movaps xmmword [ebp - 0x90], xmm7
movaps xmm1, xmmword [ebp - 0x130]
psubw xmm2, xmm0
movaps xmm0, xmmword [ebp - 0x170]
paddw xmm6, xmm4
paddw xmm5, xmm4
movaps xmmword [ebp - 0x150], xmm2
movaps xmm4, xmmword [ebp - 0x190]
movaps xmmword [ebp - 0x160], xmm6
movaps xmmword [ebp - 0x140], xmm5
movaps xmmword [ebp - 0x80], xmm3
movaps xmmword [ebp - 0x70], xmm4
movaps xmmword [ebp - 0x60], xmm2
movaps xmmword [ebp - 0x50], xmm0
movaps xmmword [ebp - 0x40], xmm6
movaps xmmword [ebp - 0x30], xmm1
movaps xmmword [ebp - 0x20], xmm5
je 0x10178df0
movaps xmm2, xmm4
movaps xmm6, xmm7
punpcklwd xmm6, xmm0
movaps xmm5, xmm3
punpckhwd xmm3, xmmword [ebp - 0x160]
punpcklwd xmm5, xmmword [ebp - 0x160]
punpckhwd xmm7, xmm0
punpcklwd xmm2, xmm1
punpckhwd xmm4, xmm1
movaps xmm1, xmmword [ebp - 0x150]
movaps xmm0, xmm1
movaps xmmword [ebp - 0x130], xmm3
punpcklwd xmm0, xmmword [ebp - 0x140]
movaps xmm3, xmm6
punpckhwd xmm1, xmmword [ebp - 0x140]
movaps xmmword [ebp - 0x150], xmm1
movaps xmm1, xmm5
punpcklwd xmm1, xmm0
punpckhwd xmm5, xmm0
movaps xmm0, xmmword [ebp - 0x130]
punpcklwd xmm3, xmm2
punpckhwd xmm6, xmm2
movaps xmm2, xmm0
punpckhwd xmm0, xmmword [ebp - 0x150]
punpcklwd xmm2, xmmword [ebp - 0x150]
movaps xmmword [ebp - 0x130], xmm0
movaps xmm0, xmm3
punpcklwd xmm0, xmm1
movups xmmword [ecx], xmm0
movaps xmm0, xmm6
movaps xmmword [ebp - 0x190], xmm4
movaps xmm4, xmm7
punpcklwd xmm4, xmmword [ebp - 0x190]
punpckhwd xmm7, xmmword [ebp - 0x190]
punpcklwd xmm0, xmm5
movups xmmword [ecx + 0x20], xmm0
movaps xmm0, xmm4
punpcklwd xmm0, xmm2
movups xmmword [ecx + 0x40], xmm0
movaps xmm0, xmm7
punpcklwd xmm0, xmmword [ebp - 0x130]
punpckhwd xmm7, xmmword [ebp - 0x130]
punpckhwd xmm3, xmm1
punpckhwd xmm6, xmm5
punpckhwd xmm4, xmm2
movups xmmword [ecx + 0x10], xmm3
movups xmmword [ecx + 0x30], xmm6
movups xmmword [ecx + 0x50], xmm4
movups xmmword [ecx + 0x60], xmm0
movups xmmword [ecx + 0x70], xmm7
jmp 0x10179062
mov esi, dword [ebx + 0xc]
movups xmmword [ecx], xmm5
movsx eax, word [ecx + 0xe]
imul eax, dword [esi + 0x30c]
add eax, 0xffff
sar eax, 0x11
cmp byte [ebp - 0x111], 0
movzx eax, ax
mov dword [ebp - 0x174], eax
je 0x10178ec3
movaps xmm5, xmmword [0x101f9090]
lea eax, [ebp - 0x90]
movaps xmm4, xmmword [0x101f9750]
mov esi, eax
sub edi, esi
sub edx, esi
mov esi, 8
nop
movups xmm3, xmmword [edi + eax]
lea eax, [eax + 0x10]
movaps xmm0, xmmword [0x101cae00]
movups xmm1, xmmword [eax - 0x10]
psllw xmm3, 1
movaps xmm2, xmm1
pmullw xmm0, xmm3
pcmpgtw xmm3, xmm1
pmulhw xmm1, xmmword [edx + eax - 0x10]
pxor xmm3, xmm4
pcmpgtw xmm2, xmm0
pxor xmm2, xmm4
por xmm2, xmm3
pand xmm2, xmm1
paddw xmm2, xmm5
psraw xmm2, 1
movups xmmword [eax - 0x10], xmm2
sub esi, 1
jne 0x10178e40
movaps xmm0, xmmword [ebp - 0x20]
movaps xmm5, xmmword [ebp - 0x30]
movaps xmm1, xmmword [ebp - 0x50]
movaps xmm2, xmmword [ebp - 0x60]
movaps xmm4, xmmword [ebp - 0x70]
movaps xmm3, xmmword [ebp - 0x80]
movaps xmm7, xmmword [ebp - 0x90]
mov eax, dword [ebp - 0x174]
movaps xmmword [ebp - 0x140], xmm0
movaps xmm0, xmmword [ebp - 0x40]
jmp 0x10178f78
movaps xmm0, xmmword [0x101f9090]
movaps xmm5, xmmword [ebp - 0x170]
pmulhw xmm5, xmmword [edx + 0x40]
pmulhw xmm1, xmmword [edx + 0x60]
pmulhw xmm6, xmmword [edx + 0x50]
pmulhw xmm7, xmmword [edx]
pmulhw xmm3, xmmword [edx + 0x10]
pmulhw xmm4, xmmword [edx + 0x20]
paddw xmm5, xmm0
pmulhw xmm2, xmmword [edx + 0x30]
paddw xmm1, xmm0
psraw xmm5, 1
paddw xmm6, xmm0
psraw xmm1, 1
paddw xmm7, xmm0
movaps xmmword [ebp - 0x170], xmm5
paddw xmm3, xmm0
movaps xmm5, xmmword [ebp - 0x140]
paddw xmm4, xmm0
pmulhw xmm5, xmmword [edx + 0x70]
paddw xmm2, xmm0
psraw xmm6, 1
movaps xmmword [ebp - 0x130], xmm1
movaps xmm1, xmmword [ebp - 0x170]
movaps xmmword [ebp - 0x160], xmm6
paddw xmm5, xmm0
psraw xmm7, 1
movaps xmm0, xmmword [ebp - 0x160]
psraw xmm5, 1
psraw xmm3, 1
movaps xmmword [ebp - 0x140], xmm5
movaps xmm5, xmmword [ebp - 0x130]
psraw xmm4, 1
psraw xmm2, 1
movaps xmm6, xmm7
punpckhwd xmm7, xmm1
punpcklwd xmm6, xmm1
movaps xmm1, xmm4
punpcklwd xmm1, xmm5
punpckhwd xmm4, xmm5
movaps xmm5, xmm3
punpckhwd xmm3, xmm0
punpcklwd xmm5, xmm0
movaps xmm0, xmm2
punpcklwd xmm0, xmmword [ebp - 0x140]
punpckhwd xmm2, xmmword [ebp - 0x140]
movaps xmmword [ebp - 0x150], xmm2
movaps xmm2, xmm5
punpcklwd xmm2, xmm0
punpckhwd xmm5, xmm0
movaps xmmword [ebp - 0x130], xmm3
movaps xmm3, xmm6
movaps xmm0, xmmword [ebp - 0x130]
punpcklwd xmm3, xmm1
punpckhwd xmm6, xmm1
movaps xmm1, xmm0
punpckhwd xmm0, xmmword [ebp - 0x150]
punpcklwd xmm1, xmmword [ebp - 0x150]
movaps xmmword [ebp - 0x130], xmm0
movaps xmm0, xmm3
punpcklwd xmm0, xmm2
movups xmmword [ecx], xmm0
movaps xmm0, xmm6
movaps xmmword [ebp - 0x190], xmm4
movaps xmm4, xmm7
punpcklwd xmm4, xmmword [ebp - 0x190]
punpckhwd xmm7, xmmword [ebp - 0x190]
punpcklwd xmm0, xmm5
movups xmmword [ecx + 0x20], xmm0
movaps xmm0, xmm4
punpcklwd xmm0, xmm1
movups xmmword [ecx + 0x40], xmm0
movaps xmm0, xmm7
punpcklwd xmm0, xmmword [ebp - 0x130]
punpckhwd xmm7, xmmword [ebp - 0x130]
punpckhwd xmm3, xmm2
punpckhwd xmm6, xmm5
punpckhwd xmm4, xmm1
movups xmmword [ecx + 0x10], xmm3
movups xmmword [ecx + 0x30], xmm6
movups xmmword [ecx + 0x50], xmm4
movups xmmword [ecx + 0x60], xmm0
movups xmmword [ecx + 0x70], xmm7
mov word [ecx + 0x7e], ax
mov ecx, dword [ebp - 4]
mov eax, 0x3f
pop edi
xor ecx, ebp
pop esi
call fcn.1019d470
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret