Function at 0x1002d170
Capabilities:
Allocate or change rwx memory

Disassembly:
sub esp, 0x18
push ebx
push esi
push edi
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
movq mm0, qword [ebx + 0x60]
pmullw mm0, qword [edi + 0x60]
movq mm1, qword [ebx + 0x20]
pmullw mm1, qword [edi + 0x20]
movq mm3, qword [ebx]
pmullw mm3, qword [edi]
movq mm5, qword [ebx + 0x40]
movq mm2, mm1
pmullw mm5, qword [edi + 0x40]
psubw mm1, mm0
movq mm7, qword [0x1015ebd0]
movq mm6, mm1
punpcklwd mm1, dword [0x1015ebf0]
paddw mm2, mm0
pmaddwd mm1, mm7
movq mm0, mm2
punpckhwd mm6, qword [0x1015ebf0]
movq mm4, mm3
pmaddwd mm6, mm7
paddw mm3, mm5
psrad mm1, 8
psubw mm4, mm5
psrad mm6, 8
packssdw mm1, mm6
movq mm6, mm3
psubw mm1, mm0
paddw mm3, mm2
movq mm5, mm1
paddw mm1, mm4
movq qword [esi + 0x20], mm3
psubw mm4, mm5
movq qword [esi + 0x60], mm1
psubw mm6, mm2
movq qword [esi], mm4
movq mm7, qword [ebx + 0x50]
pmullw mm7, qword [edi + 0x50]
movq mm0, qword [ebx + 0x30]
pmullw mm0, qword [edi + 0x30]
movq mm3, mm7
movq mm5, qword [ebx + 0x10]
pmullw mm5, qword [edi + 0x10]
psubw mm7, mm0
movq mm4, qword [ebx + 0x70]
pmullw mm4, qword [edi + 0x70]
paddw mm3, mm0
movq mm1, qword [0x1015ebd8]
movq qword [esp + 0x1c], mm7
movq mm2, mm7
punpcklwd mm7, dword [0x1015ebf0]
movq mm0, mm5
pmaddwd mm7, mm1
paddw mm5, mm4
punpckhwd mm2, qword [0x1015ebf0]
psubw mm0, mm4
pmaddwd mm2, mm1
movq mm4, mm0
punpcklwd mm0, dword [0x1015ebf0]
psrad mm7, 8
psrad mm2, 8
movq mm1, mm4
punpckhwd mm4, qword [0x1015ebf0]
packssdw mm7, mm2
movq mm2, qword [0x1015ebe0]
pmaddwd mm0, mm2
pmaddwd mm4, mm2
psrad mm0, 8
movq mm2, qword [0x1015ebe8]
psrad mm4, 8
packssdw mm0, mm4
movq mm4, mm1
movq mm1, qword [esp + 0x1c]
movq qword [esp + 0x14], mm0
paddw mm1, mm4
movq mm0, mm1
punpcklwd mm1, dword [0x1015ebf0]
movq mm4, mm5
pmaddwd mm1, mm2
paddw mm5, mm3
punpckhwd mm0, qword [0x1015ebf0]
psubw mm4, mm3
movq mm3, qword [0x1015ebd0]
pmaddwd mm0, mm2
psrad mm1, 8
movq mm2, mm4
punpcklwd mm4, dword [0x1015ebf0]
psrad mm0, 8
pmaddwd mm4, mm3
packssdw mm1, mm0
punpckhwd mm2, qword [0x1015ebf0]
movq mm0, qword [esp + 0x14]
pmaddwd mm2, mm3
psubw mm0, mm1
paddw mm1, mm7
movq mm7, qword [esi + 0x20]
psrad mm4, 8
psrad mm2, 8
movq mm3, mm6
packssdw mm4, mm2
psubw mm1, mm5
movq mm2, qword [esi + 0x60]
psubw mm4, mm1
paddw mm0, mm4
psubw mm6, mm0
paddw mm3, mm0
movq mm0, mm1
movq mm1, mm7
movq qword [esi + 0x40], mm3
paddw mm7, mm5
movq qword [esi + 0x30], mm6
psubw mm1, mm5
movq mm6, qword [esi]
movq mm3, mm2
movq qword [esi], mm7
paddw mm2, mm0
movq qword [esi + 0x70], mm1
psubw mm3, mm0
movq qword [esi + 0x10], mm2
movq mm0, mm6
movq qword [esi + 0x60], mm3
paddw mm6, mm4
movq mm1, qword [ebx + 0x28]
psubw mm0, mm4
pmullw mm1, qword [edi + 0x28]
movq qword [esi + 0x20], mm6
movq qword [esi + 0x50], mm0
movq mm7, qword [ebx + 0x68]
movq mm2, mm1
pmullw mm7, qword [edi + 0x68]
movq mm3, qword [ebx + 8]
pmullw mm3, qword [edi + 8]
movq mm5, qword [ebx + 0x48]
psubw mm1, mm7
pmullw mm5, qword [edi + 0x48]
paddw mm2, mm7
movq mm7, qword [0x1015ebd0]
movq mm4, mm1
punpcklwd mm1, dword [0x1015ebf0]
movq mm6, mm2
pmaddwd mm1, mm7
punpckhwd mm4, qword [0x1015ebf0]
movq mm0, qword [ebx + 0x58]
pmaddwd mm4, mm7
pmullw mm0, qword [edi + 0x58]
psrad mm1, 8
psrad mm4, 8
packssdw mm1, mm4
movq mm4, mm3
paddw mm3, mm5
psubw mm4, mm5
movq mm7, mm3
psubw mm1, mm6
movq mm6, qword [ebx + 0x38]
paddw mm3, mm2
movq mm5, mm4
paddw mm4, mm1
movq qword [esi + 0x28], mm3
psubw mm5, mm1
pmullw mm6, qword [edi + 0x38]
psubw mm7, mm2
movq qword [esi + 0x68], mm4
movq mm3, mm0
movq qword [esi + 0x48], mm5
paddw mm0, mm6
movq mm4, qword [ebx + 0x78]
psubw mm3, mm6
pmullw mm4, qword [edi + 0x78]
movq mm1, mm3
movq mm5, qword [ebx + 0x18]
movq mm2, mm1
pmullw mm5, qword [edi + 0x18]
movq qword [esp + 0x1c], mm7
movq mm6, mm5
movq mm7, qword [0x1015ebd8]
paddw mm5, mm4
punpcklwd mm1, dword [0x1015ebf0]
psubw mm6, mm4
pmaddwd mm1, mm7
movq mm4, mm5
punpckhwd mm2, qword [0x1015ebf0]
paddw mm5, mm0
pmaddwd mm2, mm7
psubw mm4, mm0
movq qword [esp + 0xc], mm3
psrad mm1, 8
movq mm3, qword [0x1015ebd0]
psrad mm2, 8
packssdw mm1, mm2
movq mm2, mm4
punpcklwd mm4, dword [0x1015ebf0]
pmaddwd mm4, mm3
punpckhwd mm2, qword [0x1015ebf0]
pmaddwd mm2, mm3
psrad mm4, 8
movq mm3, qword [esp + 0xc]
movq mm0, qword [0x1015ebe8]
paddw mm3, mm6
psrad mm2, 8
movq mm7, mm3
packssdw mm4, mm2
movq mm2, mm5
punpcklwd mm3, dword [0x1015ebf0]
pmaddwd mm3, mm0
punpckhwd mm7, qword [0x1015ebf0]
pmaddwd mm7, mm0
movq mm0, mm6
psrad mm3, 8
punpcklwd mm6, dword [0x1015ebf0]
psrad mm7, 8
packssdw mm3, mm7
movq mm7, qword [0x1015ebe0]
punpckhwd mm0, qword [0x1015ebf0]
pmaddwd mm6, mm7
pmaddwd mm0, mm7
psrad mm6, 8
psrad mm0, 8
packssdw mm6, mm0
movq mm0, qword [esi + 0x28]
psubw mm6, mm3
paddw mm3, mm1
psubw mm3, mm2
movq mm1, mm0
psubw mm4, mm3
paddw mm0, mm5
movq mm2, qword [esi + 0x68]
paddw mm6, mm4
movq mm7, qword [esp + 0x1c]
psubw mm1, mm5
movq qword [esi + 8], mm0
movq mm5, mm7
movq mm0, qword [esi + 0x48]
psubw mm7, mm6
paddw mm5, mm6
movq mm6, mm3
movq qword [esi + 0x38], mm7
movq mm3, mm2
psubw mm3, mm6
paddw mm2, mm6
movq qword [esi + 0x18], mm2
movq mm6, mm0
paddw mm0, mm4
psubw mm6, mm4
movq qword [esi + 0x28], mm0
movq mm0, mm5
punpcklwd mm5, mm6
punpckhwd mm0, mm6
movq mm6, qword [esi]
movq mm2, mm3
punpcklwd mm3, mm1
movq mm7, qword [esi + 0x10]
punpckhwd mm2, mm1
movq mm4, mm5
punpckldq mm5, mm3
movq qword [esi + 0x48], mm5
punpckhdq mm4, mm3
movq mm3, mm0
punpckldq mm0, mm2
movq qword [esi + 0x58], mm4
punpckhdq mm3, mm2
movq qword [esi + 0x68], mm0
movq mm5, mm6
movq qword [esi + 0x78], mm3
punpcklwd mm6, mm7
punpckhwd mm5, mm7
movq mm7, qword [esi + 0x20]
movq mm4, qword [esi + 0x30]
movq mm3, mm7
movq mm2, mm6
punpcklwd mm7, mm4
punpckhwd mm3, mm4
movq mm4, mm5
movq mm1, mm5
punpckldq mm6, mm7
movq qword [esi], mm6
punpckhdq mm2, mm7
movq qword [esi + 0x10], mm2
punpckldq mm5, mm3
movq qword [esi + 0x20], mm5
punpckhdq mm1, mm3
movq qword [esi + 0x30], mm1
movq mm0, qword [esi + 8]
movq mm1, qword [esi + 0x18]
movq mm2, mm0
movq mm3, qword [esi + 0x28]
punpcklwd mm0, mm1
punpckhwd mm2, mm1
movq mm1, qword [esi + 0x38]
movq mm4, mm3
punpcklwd mm3, mm1
punpckhwd mm4, mm1
movq mm1, mm0
movq mm5, mm2
punpckldq mm0, mm3
punpckhdq mm1, mm3
movq mm3, qword [esi + 0x40]
movq qword [esi + 0x40], mm0
punpckldq mm2, mm4
punpckhdq mm5, mm4
movq mm4, qword [esi + 0x50]
movq qword [esi + 0x50], mm1
movq mm1, mm3
movq mm0, qword [esi + 0x60]
punpcklwd mm3, mm4
punpckhwd mm1, mm4
movq mm4, qword [esi + 0x70]
movq qword [esi + 0x60], mm2
movq mm2, mm0
movq qword [esi + 0x70], mm5
punpcklwd mm0, mm4
punpckhwd mm2, mm4
movq mm4, mm3
movq mm5, mm1
punpckldq mm3, mm0
movq qword [esi + 8], mm3
punpckhdq mm4, mm0
movq qword [esi + 0x18], mm4
punpckldq mm1, mm2
movq qword [esi + 0x28], mm1
punpckhdq mm5, mm2
movq qword [esi + 0x38], mm5
mov esi, dword [esp + 0x2c]
movq mm0, qword [esi + 0x60]
movq mm1, qword [esi + 0x20]
movq mm3, qword [esi]
movq mm2, mm1
movq mm5, qword [esi + 0x40]
psubw mm1, mm0
movq mm6, qword [0x1015ebd0]
movq mm4, mm1
punpcklwd mm1, dword [0x1015ebf0]
paddw mm2, mm0
pmaddwd mm1, mm6
movq mm0, mm2
punpckhwd mm4, qword [0x1015ebf0]
pmaddwd mm4, mm6
psrad mm1, 8
psrad mm4, 8
packssdw mm1, mm4
movq mm4, mm3
paddw mm3, mm5
psubw mm4, mm5
movq mm6, mm3
psubw mm1, mm0
paddw mm3, mm2
movq mm5, mm1
paddw mm1, mm4
movq qword [esi + 0x20], mm3
psubw mm4, mm5
movq qword [esi + 0x60], mm1
psubw mm6, mm2
movq qword [esi], mm4
movq mm7, qword [esi + 0x50]
movq mm0, qword [esi + 0x30]
movq mm3, mm7
movq mm5, qword [esi + 0x10]
psubw mm7, mm0
movq mm4, qword [esi + 0x70]
paddw mm3, mm0
movq mm2, qword [0x1015ebd8]
movq mm1, mm7
movq qword [esp + 0x14], mm6
movq mm0, mm7
punpcklwd mm7, dword [0x1015ebf0]
pmaddwd mm7, mm2
punpckhwd mm0, qword [0x1015ebf0]
pmaddwd mm0, mm2
psrad mm7, 8
movq mm6, qword [0x1015ebe0]
psrad mm0, 8
packssdw mm7, mm0
movq mm0, mm5
paddw mm5, mm4
psubw mm0, mm4
movq mm2, mm0
movq mm4, mm0
punpcklwd mm0, dword [0x1015ebf0]
pmaddwd mm0, mm6
punpckhwd mm4, qword [0x1015ebf0]
pmaddwd mm4, mm6
paddw mm1, mm2
movq mm2, qword [0x1015ebe8]
psrad mm0, 8
psrad mm4, 8
movq mm6, mm1
packssdw mm0, mm4
movq mm4, mm5
punpcklwd mm1, dword [0x1015ebf0]
paddw mm5, mm3
pmaddwd mm1, mm2
psubw mm4, mm3
punpckhwd mm6, qword [0x1015ebf0]
pmaddwd mm6, mm2
psrad mm1, 8
psrad mm6, 8
packssdw mm1, mm6
psubw mm0, mm1
paddw mm1, mm7
movq mm7, qword [0x1015ebd0]
movq mm3, mm4
punpcklwd mm4, dword [0x1015ebf0]
psubw mm1, mm5
pmaddwd mm4, mm7
punpckhwd mm3, qword [0x1015ebf0]
movq mm6, qword [esp + 0x14]
pmaddwd mm3, mm7
movq mm2, qword [esi + 0x60]
psrad mm4, 8
movq mm7, qword [esi + 0x20]
psrad mm3, 8
packssdw mm4, mm3
movq mm3, mm6
psubw mm4, mm1
paddw mm0, mm4
psubw mm6, mm0
paddw mm3, mm0
movq mm0, mm1
movq mm1, mm7
movq qword [esi + 0x40], mm3
paddw mm7, mm5
movq qword [esi + 0x30], mm6
psubw mm1, mm5
movq mm6, qword [esi]
movq mm3, mm2
movq qword [esi], mm7
paddw mm2, mm0
movq qword [esi + 0x70], mm1
psubw mm3, mm0
movq qword [esi + 0x10], mm2
movq mm0, mm6
movq qword [esi + 0x60], mm3
paddw mm6, mm4
movq mm1, qword [esi + 0x28]
psubw mm0, mm4
movq qword [esi + 0x20], mm6
movq qword [esi + 0x50], mm0
movq mm7, qword [esi + 0x68]
movq mm2, mm1
movq mm3, qword [esi + 8]
psubw mm1, mm7
movq mm5, qword [esi + 0x48]
paddw mm2, mm7
movq mm4, qword [0x1015ebd0]
movq mm6, mm1
punpcklwd mm1, dword [0x1015ebf0]
pmaddwd mm1, mm4
punpckhwd mm6, qword [0x1015ebf0]
pmaddwd mm6, mm4
movq mm4, mm3
paddw mm3, mm5
psrad mm1, 8
psubw mm4, mm5
movq mm7, mm3
psrad mm6, 8
packssdw mm1, mm6
movq mm6, mm2
psubw mm1, mm6
paddw mm3, mm2
movq mm5, mm4
paddw mm4, mm1
movq qword [esi + 0x28], mm3
psubw mm5, mm1
movq qword [esi + 0x68], mm4
psubw mm7, mm2
movq qword [esi + 0x48], mm5
movq mm0, qword [esi + 0x58]
movq mm6, qword [esi + 0x38]
movq mm4, qword [esi + 0x78]
movq mm3, mm0
movq mm5, qword [esi + 0x18]
paddw mm0, mm6
movq qword [esp + 0x1c], mm7
psubw mm3, mm6
movq mm6, qword [0x1015ebd8]
movq mm1, mm3
movq mm7, mm1
punpcklwd mm1, dword [0x1015ebf0]
pmaddwd mm1, mm6
punpckhwd mm7, qword [0x1015ebf0]
pmaddwd mm7, mm6
movq mm6, mm5
paddw mm5, mm4
psrad mm1, 8
psubw mm6, mm4
movq mm4, mm5
psrad mm7, 8
paddw mm5, mm0
packssdw mm1, mm7
psubw mm4, mm0
movq mm7, qword [0x1015ebd0]
movq mm2, mm4
punpcklwd mm4, dword [0x1015ebf0]
paddw mm3, mm6
pmaddwd mm4, mm7
punpckhwd mm2, qword [0x1015ebf0]
pmaddwd mm2, mm7
movq mm7, qword [0x1015ebe8]
psrad mm4, 8
psrad mm2, 8
packssdw mm4, mm2
movq mm2, mm3
punpcklwd mm3, dword [0x1015ebf0]
pmaddwd mm3, mm7
punpckhwd mm2, qword [0x1015ebf0]
pmaddwd mm2, mm7
movq mm7, qword [0x1015ebe0]
psrad mm3, 8
psrad mm2, 8
packssdw mm3, mm2
movq mm2, mm6
punpcklwd mm6, dword [0x1015ebf0]
pmaddwd mm6, mm7
punpckhwd mm2, qword [0x1015ebf0]
pmaddwd mm2, mm7
movq mm0, qword [esi + 0x28]
psrad mm6, 8
movq mm7, qword [esp + 0x1c]
psrad mm2, 8
packssdw mm6, mm2
movq mm2, mm5
psubw mm6, mm3
paddw mm3, mm1
psubw mm3, mm2
movq mm1, mm0
psubw mm4, mm3
paddw mm0, mm5
movq mm2, qword [esi + 0x68]
paddw mm6, mm4
movq qword [esi + 8], mm0
psubw mm1, mm5
movq mm5, mm7
psubw mm7, mm6
paddw mm5, mm6
movq mm6, mm3
movq mm0, qword [esi + 0x48]
movq mm3, mm2
movq qword [esi + 0x38], mm7
psubw mm3, mm6
paddw mm2, mm6
movq mm6, mm0
movq qword [esi + 0x18], mm2
paddw mm0, mm4
psubw mm6, mm4
movq qword [esi + 0x28], mm0
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov ebx, dword [edx + 0x10]
add ebx, dword [esp + 0x38]
movq mm0, mm5
punpcklwd mm5, mm6
punpckhwd mm0, mm6
movq mm2, mm3
movq mm6, qword [esi]
punpcklwd mm3, mm1
movq mm7, qword [esi + 0x10]
punpckhwd mm2, mm1
movq mm4, mm5
punpckldq mm5, mm3
psrlw mm5, 5
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 4], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 5], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 6], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 7], al
mov ebx, dword [edx + 0x14]
add ebx, dword [esp + 0x38]
punpckhdq mm4, mm3
movq mm3, mm0
punpckldq mm0, mm2
psrlw mm4, 5
movd eax, mm4
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 4], al
psrlq mm4, 0x10
movd eax, mm4
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 5], al
psrlq mm4, 0x10
movd eax, mm4
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 6], al
psrlq mm4, 0x10
movd eax, mm4
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 7], al
mov ecx, dword [edx + 0x18]
add ecx, dword [esp + 0x38]
punpckhdq mm3, mm2
psrlw mm0, 5
movd eax, mm0
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 4], al
psrlq mm0, 0x10
movd eax, mm0
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 5], al
psrlq mm0, 0x10
movd eax, mm0
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 6], al
psrlq mm0, 0x10
movd eax, mm0
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 7], al
mov ebx, dword [edx + 0x1c]
add ebx, dword [esp + 0x38]
movq mm5, mm6
psrlw mm3, 5
movd eax, mm3
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 4], al
psrlq mm3, 0x10
movd eax, mm3
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 5], al
psrlq mm3, 0x10
movd eax, mm3
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 6], al
psrlq mm3, 0x10
movd eax, mm3
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 7], al
punpcklwd mm6, mm7
mov edx, dword [esp + 0x34]
mov ebx, dword [edx]
add ebx, dword [esp + 0x38]
movq mm4, qword [esi + 0x30]
punpckhwd mm5, mm7
movq mm7, qword [esi + 0x20]
movq mm2, mm6
movq mm3, mm7
punpcklwd mm7, mm4
punpckhwd mm3, mm4
movq mm4, mm5
movq mm1, mm5
punpckldq mm6, mm7
psrlw mm6, 5
movd eax, mm6
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx], al
psrlq mm6, 0x10
movd eax, mm6
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 1], al
psrlq mm6, 0x10
movd eax, mm6
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 2], al
psrlq mm6, 0x10
movd eax, mm6
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 3], al
mov ebx, dword [edx + 4]
add ebx, dword [esp + 0x38]
punpckhdq mm2, mm7
psrlw mm2, 5
movd eax, mm2
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx], al
psrlq mm2, 0x10
movd eax, mm2
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 1], al
psrlq mm2, 0x10
movd eax, mm2
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 2], al
psrlq mm2, 0x10
movd eax, mm2
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 3], al
mov ecx, dword [edx + 8]
add ecx, dword [esp + 0x38]
punpckldq mm5, mm3
psrlw mm5, 5
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 1], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 2], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 3], al
mov ebx, dword [edx + 0xc]
add ebx, dword [esp + 0x38]
punpckhdq mm1, mm3
psrlw mm1, 5
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 1], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 2], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 3], al
mov edx, dword [esp + 0x34]
mov ebx, dword [edx + 0x10]
add ebx, dword [esp + 0x38]
movq mm0, qword [esi + 8]
movq mm1, qword [esi + 0x18]
movq mm2, mm0
movq mm3, qword [esi + 0x28]
punpcklwd mm0, mm1
punpckhwd mm2, mm1
movq mm4, mm3
movq mm1, qword [esi + 0x38]
movq mm5, mm2
punpcklwd mm3, mm1
punpckhwd mm4, mm1
movq mm1, mm0
punpckldq mm0, mm3
punpckhdq mm1, mm3
movq mm3, qword [esi + 0x40]
psrlw mm0, 5
movd eax, mm0
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx], al
psrlq mm0, 0x10
movd eax, mm0
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 1], al
psrlq mm0, 0x10
movd eax, mm0
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 2], al
psrlq mm0, 0x10
movd eax, mm0
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 3], al
mov ebx, dword [edx + 0x14]
add ebx, dword [esp + 0x38]
punpckldq mm2, mm4
punpckhdq mm5, mm4
movq mm4, qword [esi + 0x50]
psrlw mm1, 5
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 1], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 2], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 3], al
mov ecx, dword [edx + 0x18]
add ecx, dword [esp + 0x38]
movq mm0, qword [esi + 0x60]
movq mm1, mm3
punpcklwd mm3, mm4
punpckhwd mm1, mm4
movq mm4, qword [esi + 0x70]
psrlw mm2, 5
movd eax, mm2
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx], al
psrlq mm2, 0x10
movd eax, mm2
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 1], al
psrlq mm2, 0x10
movd eax, mm2
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 2], al
psrlq mm2, 0x10
movd eax, mm2
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 3], al
mov ebx, dword [edx + 0x1c]
add ebx, dword [esp + 0x38]
movq mm2, mm0
psrlw mm5, 5
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 1], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 2], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 3], al
punpcklwd mm0, mm4
punpckhwd mm2, mm4
movq mm4, mm3
movq mm5, mm1
punpckldq mm3, mm0
mov edx, dword [esp + 0x34]
mov ebx, dword [edx]
add ebx, dword [esp + 0x38]
psrlw mm3, 5
movd eax, mm3
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 4], al
psrlq mm3, 0x10
movd eax, mm3
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 5], al
psrlq mm3, 0x10
movd eax, mm3
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 6], al
psrlq mm3, 0x10
movd eax, mm3
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 7], al
mov ebx, dword [edx + 4]
add ebx, dword [esp + 0x38]
punpckhdq mm4, mm0
psrlw mm4, 5
movd eax, mm4
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 4], al
psrlq mm4, 0x10
movd eax, mm4
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 5], al
psrlq mm4, 0x10
movd eax, mm4
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 6], al
psrlq mm4, 0x10
movd eax, mm4
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 7], al
mov ecx, dword [edx + 8]
add ecx, dword [esp + 0x38]
punpckldq mm1, mm2
psrlw mm1, 5
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 4], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 5], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 6], al
psrlq mm1, 0x10
movd eax, mm1
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ecx + 7], al
mov ebx, dword [edx + 0xc]
add ebx, dword [esp + 0x38]
punpckhdq mm5, mm2
psrlw mm5, 5
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 4], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 5], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 6], al
psrlq mm5, 0x10
movd eax, mm5
and eax, 0x3ff
mov al, byte [edi + eax]
mov byte [ebx + 7], al
emms
pop edi
pop esi
pop ebx
add esp, 0x18
ret