Function at 0x10224e40
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, 0x148
mov eax, dword [0x102e9794]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
movaps xmm6, xmmword [0x102fc820]
movups xmm1, xmmword [ecx + 0x20]
paddw xmm1, xmmword [ecx + 0x50]
lea edx, [eax + 0x390]
movups xmm0, xmmword [ecx + 0x30]
movaps xmm2, xmm1
paddw xmm0, xmmword [ecx + 0x40]
movups xmm5, xmmword [ecx]
movaps xmm3, xmm0
paddw xmm5, xmmword [ecx + 0x70]
movups xmm4, xmmword [ecx + 0x60]
paddw xmm3, xmm5
paddw xmm4, xmmword [ecx + 0x10]
psubw xmm5, xmm0
paddw xmm2, xmm4
psubw xmm4, xmm1
paddw xmm4, xmm5
movaps xmm1, xmm4
movaps xmm0, xmm4
pmulhw xmm0, xmmword [0x102fc920]
pmullw xmm1, xmmword [0x102fc920]
lea edi, [eax + 0x410]
mov al, byte [eax + 0x4f1]
mov byte [ebp - 0x91], al
psrlw xmm1, 0xf
paddw xmm1, xmm0
movaps xmm0, xmm2
paddw xmm0, xmm3
psubw xmm4, xmm1
movups xmm1, xmmword [ecx + 0x10]
psubw xmm3, xmm2
psubw xmm1, xmmword [ecx + 0x60]
movups xmm2, xmmword [ecx]
movaps xmm7, xmm1
psubw xmm2, xmmword [ecx + 0x70]
movaps xmmword [ebp - 0x90], xmm0
movaps xmm0, xmm4
paddw xmm0, xmm5
movaps xmmword [ebp - 0x110], xmm2
psubw xmm5, xmm4
movaps xmmword [ebp - 0x70], xmm0
movups xmm0, xmmword [ecx + 0x20]
paddw xmm2, xmm1
psubw xmm0, xmmword [ecx + 0x50]
movaps xmm4, xmm2
pmullw xmm4, xmmword [0x102fc7f0]
paddw xmm7, xmm0
movaps xmmword [ebp - 0x30], xmm5
movaps xmm1, xmm7
movups xmm5, xmmword [ecx + 0x30]
psubw xmm5, xmmword [ecx + 0x40]
pmullw xmm1, xmmword [0x102fc920]
paddw xmm5, xmm0
movaps xmmword [ebp - 0x50], xmm3
movaps xmm0, xmm5
psubw xmm0, xmm2
psrlw xmm4, 0xf
movaps xmm3, xmm0
pmulhw xmm0, xmmword [0x102fc900]
pmullw xmm3, xmmword [0x102fc900]
psrlw xmm1, 0xf
psrlw xmm3, 0xf
paddw xmm3, xmm0
movaps xmm0, xmm7
pmulhw xmm0, xmmword [0x102fc920]
paddw xmm1, xmm0
movaps xmm0, xmm2
pmulhw xmm0, xmmword [0x102fc7f0]
psubw xmm7, xmm1
paddw xmm7, xmm6
psraw xmm7, 2
movaps xmmword [ebp - 0xc0], xmm7
paddw xmm4, xmm0
paddw xmm4, xmm2
paddw xmm4, xmm3
paddw xmm4, xmm6
psraw xmm4, 2
movaps xmm2, xmmword [ebp - 0x110]
lea eax, [ebp - 0x90]
movaps xmm1, xmm5
movaps xmm0, xmm5
pmullw xmm1, xmmword [0x102fc880]
paddw xmm2, xmm6
pmulhw xmm0, xmmword [0x102fc880]
mov esi, 4
psraw xmm2, 2
psrlw xmm1, 0xf
paddw xmm1, xmm0
psubw xmm5, xmm1
paddw xmm5, xmm3
paddw xmm5, xmm6
psraw xmm5, 2
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
paddw xmm0, xmm6
psraw xmm0, 2
movups xmmword [eax - 0x20], xmm0
sub esi, 1
jne 0x10225020
movaps xmm1, xmmword [ebp - 0xc0]
movaps xmm6, xmm4
movaps xmm0, xmm1
paddw xmm6, xmm7
paddw xmm0, xmm5
paddw xmm6, xmm2
psubw xmm5, xmm1
movaps xmm7, xmm2
psubw xmm1, xmm4
paddw xmm5, xmm2
movaps xmm4, xmmword [ebp - 0x70]
paddw xmm1, xmm2
movaps xmmword [ebp - 0xc0], xmm1
psubw xmm7, xmm0
movaps xmm1, xmmword [ebp - 0x90]
movaps xmm3, xmm6
movaps xmm2, xmm1
punpcklwd xmm3, xmm5
punpcklwd xmm2, xmmword [ebp - 0x50]
movaps xmm0, xmm3
punpckhwd xmm1, xmmword [ebp - 0x50]
movaps xmmword [ebp - 0xd0], xmm2
movaps xmm2, xmm4
punpcklwd xmm2, xmmword [ebp - 0x30]
punpckhwd xmm4, xmmword [ebp - 0x30]
punpckhwd xmm6, xmm5
movaps xmm5, xmmword [ebp - 0xd0]
movaps xmmword [ebp - 0x100], xmm1
movaps xmm1, xmm7
punpcklwd xmm1, xmmword [ebp - 0xc0]
punpckhwd xmm7, xmmword [ebp - 0xc0]
punpcklwd xmm0, xmm1
punpcklwd xmm5, xmm2
movaps xmmword [ebp - 0xb0], xmm6
movaps xmm6, xmm5
punpckhwd xmm5, xmm0
punpcklwd xmm6, xmm0
movaps xmm0, xmmword [ebp - 0xd0]
punpckhwd xmm0, xmm2
punpckhwd xmm3, xmm1
movaps xmm2, xmm0
movaps xmm1, xmmword [ebp - 0x100]
punpckhwd xmm0, xmm3
movaps xmmword [ebp - 0xd0], xmm0
movaps xmm0, xmmword [ebp - 0xb0]
punpcklwd xmm0, xmm7
movaps xmmword [ebp - 0xc0], xmm5
movaps xmm5, xmm1
punpcklwd xmm5, xmm4
movaps xmmword [ebp - 0x110], xmm6
movaps xmm6, xmm5
punpcklwd xmm6, xmm0
punpckhwd xmm5, xmm0
movaps xmm0, xmmword [ebp - 0xb0]
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 - 0x110]
movaps xmm3, xmm4
paddw xmm3, xmmword [ebp - 0xc0]
movaps xmmword [ebp - 0x100], xmm1
movaps xmm1, xmm6
paddw xmm1, xmmword [ebp - 0xd0]
psraw xmm0, 1
movaps xmmword [ebp - 0x130], xmm2
movaps xmmword [ebp - 0xf0], xmm0
movaps xmm0, xmm5
movaps xmm7, xmmword [ebp - 0xf0]
paddw xmm0, xmm2
psraw xmm1, 1
psraw xmm0, 1
movaps xmm2, xmm1
psraw xmm3, 1
paddw xmm2, xmmword [ebp - 0xf0]
movaps xmmword [ebp - 0xb0], xmm2
movaps xmm2, xmm0
paddw xmm2, xmm3
psubw xmm7, xmm1
psubw xmm3, xmm0
movaps xmmword [ebp - 0xf0], xmm7
paddw xmm3, xmmword [ebp - 0xf0]
movaps xmm7, xmmword [ebp - 0xb0]
movaps xmm1, xmm3
pmullw xmm1, xmmword [0x102fc920]
movaps xmm0, xmm3
pmulhw xmm0, xmmword [0x102fc920]
psrlw xmm1, 0xf
paddw xmm1, xmm0
movaps xmm0, xmm2
psubw xmm3, xmm1
paddw xmm0, xmm7
movaps xmm1, xmmword [ebp - 0xf0]
psubw xmm7, xmm2
movaps xmmword [ebp - 0x140], xmm0
movaps xmm0, xmm3
paddw xmm0, xmm1
movaps xmmword [ebp - 0xb0], xmm7
movaps xmm7, xmmword [ebp - 0xc0]
psubw xmm1, xmm3
movaps xmmword [ebp - 0xf0], xmm1
psubw xmm7, xmm4
movaps xmm1, xmmword [ebp - 0xd0]
movaps xmm4, xmmword [ebp - 0x110]
psubw xmm1, xmm6
psubw xmm4, xmmword [ebp - 0x100]
movaps xmmword [ebp - 0x120], xmm0
movaps xmm3, xmm4
movaps xmm0, xmmword [ebp - 0x130]
paddw xmm3, xmm7
psubw xmm0, xmm5
psraw xmm3, 1
paddw xmm1, xmm0
psraw xmm4, 1
psraw xmm1, 1
movaps xmm5, xmm7
paddw xmm5, xmm0
movaps xmmword [ebp - 0xd0], xmm1
movaps xmm7, xmmword [ebp - 0xd0]
movaps xmm0, xmm7
psraw xmm5, 1
psubw xmm0, xmm3
movaps xmm1, xmm7
pmullw xmm1, xmmword [0x102fc880]
movaps xmm2, xmm0
pmulhw xmm0, xmmword [0x102fc900]
pmullw xmm2, xmmword [0x102fc900]
psrlw xmm1, 0xf
psrlw xmm2, 0xf
paddw xmm2, xmm0
movaps xmm0, xmm7
pmulhw xmm0, xmmword [0x102fc880]
paddw xmm1, xmm0
movaps xmm0, xmm5
pmulhw xmm0, xmmword [0x102fc920]
psubw xmm7, xmm1
movaps xmm1, xmm5
paddw xmm7, xmm2
pmullw xmm1, xmmword [0x102fc920]
psrlw xmm1, 0xf
paddw xmm1, xmm0
movaps xmm0, xmm3
pmulhw xmm0, xmmword [0x102fc7f0]
psubw xmm5, xmm1
movaps xmm1, xmm3
pmullw xmm1, xmmword [0x102fc7f0]
psrlw xmm1, 0xf
paddw xmm1, xmm0
movaps xmm0, xmm5
paddw xmm1, xmm3
paddw xmm0, xmm7
paddw xmm1, xmm2
psubw xmm7, xmm5
movaps xmm3, xmm1
movaps xmm2, xmm4
paddw xmm3, xmm5
psubw xmm2, xmm0
paddw xmm3, xmm4
movaps xmmword [ebp - 0xc0], xmm2
cmp byte [ebx + 0x10], 0
paddw xmm7, xmm4
movaps xmm0, xmmword [ebp - 0x120]
psubw xmm5, xmm1
movaps xmmword [ebp - 0xd0], xmm7
paddw xmm5, xmm4
movaps xmm7, xmmword [ebp - 0x140]
movaps xmm1, xmmword [ebp - 0xd0]
movaps xmm4, xmmword [ebp - 0xf0]
movaps xmmword [ebp - 0x60], xmm2
movaps xmm2, xmmword [ebp - 0xb0]
movaps xmmword [ebp - 0x130], xmm5
movaps xmmword [ebp - 0x90], xmm7
movaps xmmword [ebp - 0x80], xmm3
movaps xmmword [ebp - 0x70], xmm0
movaps xmmword [ebp - 0x50], xmm2
movaps xmmword [ebp - 0x40], xmm1
movaps xmmword [ebp - 0x30], xmm4
movaps xmmword [ebp - 0x20], xmm5
je 0x102254b4
movaps xmm6, xmm7
movaps xmm5, xmm3
punpcklwd xmm6, xmm2
punpckhwd xmm7, xmm2
movaps xmm2, xmm0
punpckhwd xmm0, xmm4
movaps xmmword [ebp - 0x120], xmm0
punpckhwd xmm3, xmm1
punpcklwd xmm5, xmm1
movaps xmm1, xmmword [ebp - 0xc0]
movaps xmm0, xmm1
punpcklwd xmm2, xmm4
punpcklwd xmm0, xmmword [ebp - 0x130]
movaps xmm4, xmm7
punpckhwd xmm1, xmmword [ebp - 0x130]
punpcklwd xmm4, xmmword [ebp - 0x120]
punpckhwd xmm7, xmmword [ebp - 0x120]
movaps xmmword [ebp - 0xc0], xmm1
movaps xmm1, xmm5
punpcklwd xmm1, xmm0
punpckhwd xmm5, xmm0
movaps xmmword [ebp - 0xb0], xmm3
movaps xmm3, xmm6
movaps xmm0, xmmword [ebp - 0xb0]
punpcklwd xmm3, xmm2
punpckhwd xmm6, xmm2
movaps xmm2, xmm0
punpckhwd xmm0, xmmword [ebp - 0xc0]
punpcklwd xmm2, xmmword [ebp - 0xc0]
movaps xmmword [ebp - 0xb0], xmm0
movaps xmm0, xmm3
punpcklwd xmm0, xmm1
movups xmmword [ecx], xmm0
movaps xmm0, xmm6
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 - 0xb0]
punpckhwd xmm7, xmmword [ebp - 0xb0]
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 0x10225690
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
movzx eax, ax
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x90]
sub edx, eax
cmp byte [ebp - 0x91], 0
je 0x10225553
movaps xmm5, xmmword [0x102fc940]
mov esi, eax
movaps xmm4, xmmword [0x102ff430]
sub edi, esi
mov esi, 8
nop
movups xmm3, xmmword [edi + eax]
lea eax, [eax + 0x10]
movaps xmm0, xmmword [0x1029df70]
movups xmm1, xmmword [eax - 0x10]
psllw xmm3, 1
movaps xmm2, xmm1
pmullw xmm0, xmm3
pcmpgtw xmm3, xmm1
pxor xmm3, xmm4
pcmpgtw xmm2, xmm0
movups xmm0, xmmword [edx + eax - 0x10]
pmulhw xmm0, xmm1
pxor xmm2, xmm4
por xmm2, xmm3
pand xmm2, xmm0
paddw xmm2, xmm5
psraw xmm2, 1
movups xmmword [eax - 0x10], xmm2
sub esi, 1
jne 0x10225500
jmp 0x1022557e
movaps xmm1, xmmword [0x102fc940]
mov esi, 8
nop
movups xmm0, xmmword [edx + eax]
lea eax, [eax + 0x10]
pmulhw xmm0, xmmword [eax - 0x10]
paddw xmm0, xmm1
psraw xmm0, 1
movups xmmword [eax - 0x10], xmm0
sub esi, 1
jne 0x10225560
movaps xmm1, xmmword [ebp - 0x90]
movaps xmm6, xmmword [ebp - 0x70]
movaps xmm2, xmm1
punpckhwd xmm1, xmmword [ebp - 0x50]
movaps xmm4, xmm6
punpcklwd xmm2, xmmword [ebp - 0x50]
punpcklwd xmm4, xmmword [ebp - 0x30]
movaps xmm3, xmm2
punpckhwd xmm6, xmmword [ebp - 0x30]
movaps xmm5, xmmword [ebp - 0x60]
movaps xmmword [ebp - 0x100], xmm1
movaps xmm1, xmmword [ebp - 0x80]
movaps xmmword [ebp - 0xb0], xmm2
movaps xmm7, xmm1
punpckhwd xmm1, xmmword [ebp - 0x40]
movaps xmm0, xmmword [ebp - 0xb0]
punpcklwd xmm7, xmmword [ebp - 0x40]
punpckhwd xmm0, xmm4
movaps xmm2, xmm7
movaps xmmword [ebp - 0xb0], xmm0
movaps xmm0, xmmword [ebp - 0x100]
mov eax, dword [ebp - 0xd4]
movaps xmmword [ebp - 0x110], xmm1
movaps xmm1, xmm5
punpcklwd xmm1, xmmword [ebp - 0x20]
punpckhwd xmm5, xmmword [ebp - 0x20]
punpcklwd xmm3, xmm4
movaps xmm4, xmm0
punpckhwd xmm0, xmm6
movaps xmmword [ebp - 0x100], xmm0
movaps xmm0, xmm3
punpcklwd xmm2, xmm1
punpcklwd xmm0, xmm2
movups xmmword [ecx], xmm0
punpckhwd xmm7, xmm1
movaps xmm1, xmmword [ebp - 0x110]
punpckhwd xmm3, xmm2
movaps xmm2, xmmword [ebp - 0xb0]
movaps xmm0, xmm2
punpcklwd xmm4, xmm6
movaps xmm6, xmmword [ebp - 0x110]
punpcklwd xmm0, xmm7
movups xmmword [ecx + 0x20], xmm0
movaps xmm0, xmm4
punpcklwd xmm1, xmm5
punpcklwd xmm0, xmm1
punpckhwd xmm4, xmm1
movaps xmm1, xmmword [ebp - 0x100]
movups xmmword [ecx + 0x40], xmm0
movaps xmm0, xmm1
punpckhwd xmm6, xmm5
punpckhwd xmm2, xmm7
punpcklwd xmm0, xmm6
punpckhwd xmm1, xmm6
movups xmmword [ecx + 0x10], xmm3
movups xmmword [ecx + 0x30], xmm2
movups xmmword [ecx + 0x50], xmm4
movups xmmword [ecx + 0x60], xmm0
movups xmmword [ecx + 0x70], xmm1
mov word [ecx + 0x7e], ax
mov ecx, dword [ebp - 4]
mov eax, 0x3f
pop edi
xor ecx, ebp
pop esi
call fcn.1023c450
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret