Function at 0x1008ab30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20c
mov eax, dword [esp + 0x220]
mov edx, dword [esp + 0x238]
mov ebx, dword [eax + 0xc]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
and edx, 0xfffffff0
mov eax, ebx
bswap esi
bswap edi
bswap ecx
bswap eax
je 0x1008ba40
mov ebx, dword [esp + 0x22c]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x230]
movdqa xmm4, xmmword [0x1011e3b0]
movdqa xmm5, xmmword [0x1011e3c0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x224]
mov ebp, ebx
movd xmm2, edx
and eax, 0x11111111
and ebp, 0x11111111
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], ebp
mov ebp, ebx
and ebp, 0x88888888
mov dword [esp + 0x4c], ebp
mov ebp, edx
xor ebp, ebx
and ebx, 0x44444444
movd xmm0, ebp
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x228]
mov ebp, dword [esp + 0x224]
punpckldq xmm0, xmm2
punpcklqdq xmm2, xmm0
movdqa xmm0, xmm2
movdqa xmm6, xmm2
movd xmm3, ebx
xor edx, ebx
xor ebx, ebp
pand xmm0, xmm4
movd xmm1, ebx
mov ebx, dword [esp + 0x22c]
movdqu xmmword [esp + 0x140], xmm0
movdqa xmm0, xmm2
punpckldq xmm1, xmm3
pand xmm0, xmm5
punpcklqdq xmm3, xmm1
movd xmm1, edx
movdqu xmmword [esp + 0x130], xmm0
movdqa xmm7, xmm3
and ebx, 0x22222222
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x22c]
xor ebx, ebp
xor edx, ebx
mov dword [esp + 0x34], ebx
mov ebx, ebp
movd xmm0, edx
mov edx, ebp
mov ebp, dword [esp + 0x224]
and ebx, 0x44444444
punpckldq xmm0, xmm1
and edx, 0x88888888
mov dword [esp + 0x64], ebx
punpcklqdq xmm1, xmm0
movdqa xmm0, xmmword [0x1011e3d0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
and ebp, 0x22222222
mov dword [esp + 0x60], ebp
pand xmm6, xmm0
mov eax, edx
pand xmm7, xmm0
movdqu xmmword [esp + 0x120], xmm6
movdqa xmm6, xmmword [0x1011e3e0]
and eax, 0x11111111
movdqu xmmword [esp + 0x1a0], xmm7
mov dword [esp + 0x40], eax
mov eax, edx
and eax, 0x88888888
mov dword [esp + 0x3c], eax
mov eax, edx
and edx, 0x22222222
pand xmm2, xmm6
and eax, 0x44444444
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x234]
movdqu xmmword [esp + 0x180], xmm2
movdqa xmm2, xmm3
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x38]
pand xmm2, xmm4
movdqu xmmword [esp + 0x110], xmm2
movdqa xmm2, xmm3
pand xmm3, xmm6
movdqu xmmword [esp + 0x170], xmm3
movdqa xmm3, xmm1
pand xmm2, xmm5
add edx, 8
pand xmm3, xmm4
movdqa xmm4, xmm1
movdqu xmmword [esp + 0x1b0], xmm2
movdqu xmmword [esp + 0x190], xmm3
movdqa xmm3, xmm1
pand xmm4, xmm5
pand xmm1, xmm6
pand xmm3, xmm0
movdqu xmmword [esp + 0x100], xmm4
movdqu xmmword [esp + 0x160], xmm1
movdqu xmmword [esp + 0x150], xmm3
nop dword [eax]
mov ebx, edx
mov dword [esp + 0xdc], edx
mov edx, dword [edx]
movdqa xmm1, xmmword [0x1011e3b0]
movdqu xmm3, xmmword [esp + 0x130]
movdqa xmm5, xmmword [0x1011e3d0]
movdqu xmm7, xmmword [esp + 0x120]
mov ebp, dword [ebx + 4]
bswap edx
bswap ebp
xor edx, ecx
mov ecx, dword [ebx - 4]
xor ebp, eax
mov eax, dword [ebx - 8]
movd xmm6, edx
bswap ecx
bswap eax
xor ecx, edi
xor eax, esi
mov esi, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x24], ecx
xor esi, ebp
movd xmm0, esi
mov esi, eax
punpckldq xmm0, xmm6
xor esi, ecx
xor ecx, ebp
punpcklqdq xmm6, xmm0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], ecx
movdqa xmm0, xmm6
movdqa xmm2, xmm6
pand xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x140]
movdqa xmm4, xmm0
pmuludq xmm4, xmm1
movdqa xmm1, xmmword [0x1011e3e0]
pand xmm2, xmm1
movdqa xmm1, xmm2
pmuludq xmm1, xmm3
movdqa xmm3, xmm6
pand xmm3, xmm5
movdqa xmm5, xmm3
pmuludq xmm5, xmm7
movdqu xmm7, xmmword [esp + 0x130]
pxor xmm5, xmm1
movdqa xmm1, xmmword [0x1011e3c0]
pand xmm6, xmm1
movdqu xmmword [esp + 0xc0], xmm6
movdqa xmm1, xmm6
movdqu xmm6, xmmword [esp + 0x180]
pmuludq xmm1, xmm6
pxor xmm1, xmm5
movdqa xmm5, xmm0
pmuludq xmm5, xmm6
movdqu xmm6, xmmword [esp + 0x140]
pxor xmm1, xmm4
movdqa xmm4, xmm2
pmuludq xmm4, xmm6
movdqa xmm6, xmm3
pmuludq xmm6, xmm7
movdqu xmm7, xmmword [esp + 0x120]
pxor xmm6, xmm4
movdqu xmm4, xmmword [esp + 0xc0]
pmuludq xmm4, xmm7
movdqu xmm7, xmmword [esp + 0x140]
pxor xmm4, xmm6
movdqu xmm6, xmmword [esp + 0x180]
pxor xmm4, xmm5
movdqa xmm5, xmm2
pmuludq xmm5, xmm6
movdqa xmm6, xmm3
pmuludq xmm6, xmm7
movdqu xmm7, xmmword [esp + 0x130]
pxor xmm6, xmm5
movdqu xmm5, xmmword [esp + 0xc0]
pmuludq xmm5, xmm7
movdqu xmm7, xmmword [esp + 0x120]
pxor xmm5, xmm6
movdqa xmm6, xmm0
pmuludq xmm6, xmm7
pxor xmm5, xmm6
movdqu xmm6, xmmword [esp + 0x130]
pmuludq xmm0, xmm6
movdqu xmm6, xmmword [esp + 0x120]
pmuludq xmm2, xmm6
movdqu xmm6, xmmword [esp + 0x180]
pmuludq xmm3, xmm6
movdqu xmm6, xmmword [esp + 0x140]
pxor xmm3, xmm2
movdqu xmm2, xmmword [esp + 0xc0]
pmuludq xmm2, xmm6
pxor xmm2, xmm3
movd xmm3, eax
xor eax, edx
pxor xmm2, xmm0
movdqa xmm0, xmmword [0x1011e3f0]
pand xmm1, xmm0
movdqa xmm0, xmmword [str.________________DDDDDDDDDDDDDDDD]
pand xmm4, xmm0
movdqa xmm0, xmmword [0x1011e410]
pand xmm5, xmm0
movdqa xmm0, xmmword [0x1011e420]
por xmm5, xmm4
pand xmm2, xmm0
movd xmm0, esi
punpckldq xmm0, xmm3
por xmm2, xmm5
punpcklqdq xmm3, xmm0
por xmm2, xmm1
movdqu xmm1, xmmword [esp + 0x110]
movdqa xmm0, xmm3
movdqa xmm7, xmm3
movdqu xmmword [esp + 0xc0], xmm2
movdqa xmm2, xmm3
pand xmm0, xmmword [0x1011e3b0]
pand xmm7, xmmword [0x1011e3e0]
movdqu xmmword [esp + 0xb0], xmm0
pmuludq xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x1b0]
movdqa xmm3, xmm7
movdqu xmmword [esp + 0x70], xmm7
pmuludq xmm3, xmm1
movdqa xmm1, xmm2
pand xmm1, xmmword [0x1011e3d0]
movdqa xmm5, xmm1
movdqa xmm6, xmm1
movdqu xmmword [esp + 0xa0], xmm1
movdqu xmm1, xmmword [esp + 0x1a0]
pmuludq xmm5, xmm1
pxor xmm5, xmm3
movdqa xmm3, xmm2
movdqu xmm2, xmmword [esp + 0x170]
pand xmm3, xmmword [0x1011e3c0]
movdqa xmm1, xmm3
movdqa xmm4, xmm3
pmuludq xmm1, xmm2
movdqu xmm2, xmmword [esp + 0xb0]
pxor xmm1, xmm5
movdqa xmm5, xmm6
movdqu xmm6, xmmword [esp + 0x1b0]
pxor xmm1, xmm0
movdqa xmm0, xmm7
movdqu xmmword [esp + 0xf0], xmm1
movdqu xmm1, xmmword [esp + 0x110]
pmuludq xmm5, xmm6
pmuludq xmm0, xmm1
movdqa xmm1, xmm3
movdqu xmm3, xmmword [esp + 0x1a0]
pxor xmm5, xmm0
movdqu xmm0, xmmword [esp + 0x170]
pmuludq xmm1, xmm3
pxor xmm1, xmm5
movdqa xmm5, xmm2
pmuludq xmm5, xmm0
pxor xmm1, xmm5
movdqa xmm5, xmm7
movdqu xmm7, xmmword [esp + 0x110]
pmuludq xmm5, xmm0
movdqu xmm0, xmmword [esp + 0xa0]
movdqu xmmword [esp + 0xe0], xmm1
mov dword [esp + 0xa0], ecx
movdqa xmm1, xmm0
pmuludq xmm1, xmm7
movdqa xmm7, xmm4
pxor xmm1, xmm5
pmuludq xmm7, xmm6
movd xmm5, eax
pxor xmm7, xmm1
movdqa xmm1, xmm2
movdqa xmm2, xmm3
pmuludq xmm1, xmm3
pxor xmm7, xmm1
movdqu xmm1, xmmword [esp + 0x70]
mov dword [esp + 0x70], ecx
xor ecx, eax
mov eax, ebp
movdqa xmm3, xmm7
movdqa xmm7, xmm0
movdqu xmm0, xmmword [esp + 0x170]
and eax, 0x11111111
pand xmm3, xmmword [0x1011e410]
mov dword [esp + 0x1c], eax
mul dword [esp + 0x50]
pmuludq xmm1, xmm2
movdqu xmm2, xmmword [esp + 0x110]
pmuludq xmm7, xmm0
pxor xmm7, xmm1
movd xmm1, ecx
mov dword [esp + 0x8c], eax
mov eax, ebp
mov ecx, ebp
and ebp, 0x44444444
movdqa xmm0, xmm7
movdqu xmm0, xmmword [esp + 0xf0]
punpckldq xmm1, xmm5
and eax, 0x22222222
and ecx, 0x88888888
mov dword [esp + 0x18], ebp
pmuludq xmm4, xmm2
movdqu xmm2, xmmword [esp + 0xb0]
mov dword [esp + 0x14], eax
pxor xmm4, xmm7
pand xmm0, xmmword [0x1011e3f0]
pmuludq xmm2, xmm6
pxor xmm4, xmm2
movdqu xmm2, xmmword [esp + 0xe0]
pand xmm4, xmmword [0x1011e420]
pand xmm2, xmmword [str.________________DDDDDDDDDDDDDDDD]
por xmm3, xmm2
por xmm4, xmm3
movdqu xmm3, xmmword [esp + 0x150]
por xmm4, xmm0
movdqu xmmword [esp + 0x1c0], xmm4
movdqa xmm4, xmm5
punpcklqdq xmm4, xmm1
movdqu xmm1, xmmword [esp + 0x100]
movdqa xmm0, xmm4
movdqa xmm2, xmm4
movdqa xmm5, xmm4
pand xmm0, xmmword [0x1011e3b0]
pand xmm2, xmmword [0x1011e3e0]
pand xmm5, xmmword [0x1011e3c0]
movdqa xmm7, xmm0
movdqa xmm0, xmm2
movdqa xmm6, xmm5
pmuludq xmm0, xmm1
movdqa xmm1, xmm4
movdqu xmm4, xmmword [esp + 0x190]
movdqu xmmword [esp + 0x1d0], xmm7
pand xmm1, xmmword [0x1011e3d0]
movdqu xmmword [esp + 0x90], xmm1
pmuludq xmm1, xmm3
movdqu xmm3, xmmword [esp + 0xc0]
pxor xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x160]
pmuludq xmm6, xmm0
movdqu xmm0, xmmword [esp + 0x90]
mov dword [esp + 0x90], edx
mul dword [esp + 0x4c]
pxor xmm6, xmm1
movdqa xmm1, xmm7
pmuludq xmm1, xmm4
pxor xmm6, xmm1
pshufd xmm1, xmm3, 0x4e
mov dword [esp + 4], eax
mov eax, ebp
mov esi, edx
movd dword [esp + 0xf0], xmm1
pshufd xmm1, xmm3, 0xe7
movdqu xmm3, xmmword [esp + 0x1c0]
movdqu xmmword [esp + 0x1f0], xmm6
movdqa xmm6, xmm0
mul dword [esp + 0x6c]
movd dword [esp + 0x38], xmm1
pshufd xmm1, xmm3, 0x4e
mov ebx, eax
mov eax, ecx
mov edi, edx
movd dword [esp + 0xe0], xmm1
pshufd xmm1, xmm3, 0xe7
movdqu xmm3, xmmword [esp + 0x100]
xor ebx, dword [esp + 4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x68]
xor edi, esi
mov esi, dword [esp + 0x14]
movd dword [esp + 0xb0], xmm1
movdqa xmm1, xmm2
pmuludq xmm1, xmm4
pmuludq xmm6, xmm3
movdqa xmm3, xmm5
mul ecx
pxor xmm6, xmm1
movdqa xmm1, xmm5
movdqu xmm5, xmmword [esp + 0x150]
xor edx, edi
xor eax, ebx
mov dword [esp + 0x28], eax
xor edx, dword [esp + 0x90]
mov eax, dword [esp + 0x1c]
pmuludq xmm1, xmm5
movdqa xmm5, xmm7
pxor xmm1, xmm6
movdqa xmm6, xmm7
movdqu xmm7, xmmword [esp + 0x160]
mov dword [esp + 0x58], edx
mul ecx
mov dword [esp + 0x90], eax
mov eax, esi
mov dword [esp + 0x30], edx
mul dword [esp + 0x50]
pmuludq xmm6, xmm7
pxor xmm1, xmm6
movdqa xmm6, xmm2
movdqu xmmword [esp + 0x1e0], xmm1
movdqu xmm1, xmmword [esp + 0x100]
pmuludq xmm6, xmm7
movdqa xmm7, xmm0
mov ecx, eax
mov eax, ebp
mov ebx, edx
pmuludq xmm7, xmm4
movdqa xmm4, xmm3
mul dword [esp + 0x4c]
pxor xmm7, xmm6
movdqa xmm6, xmm3
movdqa xmm3, xmm0
movdqu xmm0, xmmword [esp + 0x160]
pmuludq xmm6, xmm1
movdqu xmm1, xmmword [esp + 0x150]
pxor xmm6, xmm7
mov edi, eax
mov eax, dword [esp + 4]
mov ebp, edx
pmuludq xmm3, xmm0
xor edi, ecx
mov ecx, dword [esp + 0x6c]
xor ebp, ebx
pmuludq xmm2, xmm1
pmuludq xmm5, xmm1
movdqu xmm1, xmmword [esp + 0x190]
pxor xmm3, xmm2
movdqu xmm2, xmmword [esp + 0x1c0]
pxor xmm6, xmm5
movdqa xmm0, xmm3
movdqu xmm3, xmmword [esp + 0xc0]
pand xmm6, xmmword [0x1011e410]
mul ecx
xor eax, edi
mov ebx, edx
pmuludq xmm4, xmm1
movdqu xmm1, xmmword [esp + 0x100]
xor eax, dword [esp + 0x90]
xor ebx, ebp
pxor xmm4, xmm0
movdqu xmm0, xmmword [esp + 0x1d0]
xor ebx, dword [esp + 0x30]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x1c]
pmuludq xmm0, xmm1
and ebx, 0x22222222
pxor xmm4, xmm0
movdqu xmm0, xmmword [esp + 0x1e0]
pand xmm4, xmmword [0x1011e420]
mul ecx
mov dword [esp + 0x54], eax
mov eax, esi
mov dword [esp + 0x30], edx
pand xmm0, xmmword [str.________________DDDDDDDDDDDDDDDD]
mul dword [esp + 0x68]
por xmm6, xmm0
movdqu xmm0, xmmword [esp + 0x1f0]
mov ecx, eax
mov eax, dword [esp + 0x18]
mov esi, edx
por xmm4, xmm6
pand xmm0, xmmword [0x1011e3f0]
mul dword [esp + 0x50]
por xmm4, xmm0
mov ebp, eax
mov eax, dword [esp + 4]
mov edi, edx
pshufd xmm0, xmm4, 0x4e
pshufd xmm1, xmm4, 0xe7
xor edi, esi
xor ebp, ecx
mul dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, edx
xor ecx, edi
xor esi, ebp
xor ecx, dword [esp + 0x30]
xor esi, dword [esp + 0x54]
mul dword [esp + 0x4c]
and ecx, 0x44444444
and esi, 0x44444444
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
mul dword [esp + 0x6c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], edx
mul dword [esp + 0x68]
mov edi, eax
mov eax, dword [esp + 4]
mov ebp, edx
xor edi, dword [esp + 0x14]
xor ebp, dword [esp + 0x54]
mul dword [esp + 0x50]
xor eax, edi
mov edi, dword [esp + 0x58]
xor edx, ebp
mov ebp, dword [esp + 0x28]
xor edx, dword [esp + 0x1c]
xor eax, dword [esp + 0x30]
and edi, 0x11111111
xor ebp, dword [esp + 0x8c]
or ebx, edi
mov edi, dword [esp + 0x90]
and edx, 0x8888888
and eax, 0x88888888
or edx, ecx
mov ecx, dword [esp + 0xf0]
or eax, esi
mov esi, dword [esp + 0x38]
or edx, ebx
mov ebx, dword [esp + 0x10]
and ebp, 0x11111111
and edi, 0x22222222
or edi, ebp
xor esi, edx
or eax, edi
and ebx, 0x11111111
mov dword [esp + 0x90], edi
xor ecx, eax
mov dword [esp + 0x1c], eax
movd eax, xmm3
mov dword [esp + 0x10], ebx
xor ecx, edx
xor esi, eax
xor ecx, eax
mov eax, ebx
mov dword [esp + 0x38], esi
mul dword [esp + 0x44]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 4], edx
and eax, 0x22222222
mov dword [esp + 0xc], eax
mul dword [esp + 0x48]
mov esi, eax
mov eax, dword [esp + 8]
mov edi, edx
and eax, 0x44444444
mov dword [esp + 8], eax
mul dword [esp + 0x64]
mov ecx, eax
mov eax, dword [esp + 0x24]
mov ebp, edx
xor ecx, esi
mov esi, dword [esp + 0x60]
xor ebp, edi
mov edi, dword [esp + 0x64]
and eax, 0x88888888
mov dword [esp + 0x24], eax
mul esi
xor eax, ecx
xor edx, ebp
xor eax, dword [esp + 0x18]
xor edx, dword [esp + 4]
mov dword [esp + 0x18], eax
mov eax, ebx
mov dword [esp + 4], edx
mul esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], edx
mul dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 8]
mov ecx, edx
mul dword [esp + 0x48]
mov esi, eax
mov eax, dword [esp + 0x24]
mov ebp, edx
xor esi, ebx
xor ebp, ecx
mul edi
mov ebx, eax
mov eax, dword [esp + 0x10]
mov ecx, edx
xor ecx, ebp
xor ebx, esi
xor ecx, dword [esp + 0x28]
xor ebx, dword [esp + 0x14]
mul edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], edx
and ebx, 0x22222222
and ecx, 0x22222222
mul dword [esp + 0x60]
mov esi, eax
mov eax, dword [esp + 8]
mov edi, edx
mul dword [esp + 0x44]
mov ebp, eax
mov eax, dword [esp + 0x24]
xor edx, edi
mov dword [esp + 0x58], edx
xor ebp, esi
mul dword [esp + 0x48]
mov esi, eax
mov eax, dword [esp + 0x10]
mov edi, edx
xor edi, dword [esp + 0x58]
xor esi, ebp
xor esi, dword [esp + 0x28]
mul dword [esp + 0x48]
xor edi, dword [esp + 0x14]
and esi, 0x44444444
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], edx
and edi, 0x44444444
mul dword [esp + 0x64]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], edx
mul dword [esp + 0x60]
xor eax, dword [esp + 0x28]
mov ebp, edx
xor ebp, dword [esp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mul dword [esp + 0x44]
xor edx, ebp
mov ebp, dword [esp + 0x18]
xor eax, dword [esp + 8]
xor edx, dword [esp + 0x14]
and ebp, 0x11111111
xor eax, dword [esp + 0x10]
or ebx, ebp
mov ebp, dword [esp + 4]
and edx, 0x8888888
or esi, ebx
mov ebx, dword [esp + 0x20]
and eax, 0x88888888
and ebp, 0x11111111
or eax, esi
mov esi, dword [esp + 0xb0]
or ecx, ebp
and ebx, 0x11111111
mov dword [esp + 0x24], eax
or edi, ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x20], ebx
or edx, edi
xor esi, edx
xor ecx, eax
movd eax, xmm2
xor ecx, edx
xor esi, eax
xor ecx, eax
mov eax, ebx
mov dword [esp + 0xb0], esi
mul dword [esp + 0x40]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], edx
and eax, 0x22222222
mov dword [esp + 0x70], eax
mul dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0xa0]
mov edi, edx
and eax, 0x44444444
mov dword [esp + 0xa0], eax
mul dword [esp + 0x5c]
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov ebp, edx
xor ecx, esi
mov esi, dword [esp + 0x34]
xor ebp, edi
mov edi, dword [esp + 0x5c]
and eax, 0x88888888
mov dword [esp + 0x2c], eax
mul esi
xor eax, ecx
xor edx, ebp
xor eax, dword [esp + 0xc]
xor edx, dword [esp + 8]
mov dword [esp + 0xc], eax
mov eax, ebx
mov dword [esp + 8], edx
mul esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], edx
mul dword [esp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0xa0]
mov ecx, edx
mul dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x2c]
mov ebp, edx
xor esi, ebx
xor ebp, ecx
mul edi
mov ebx, eax
mov eax, dword [esp + 0x20]
mov ecx, edx
xor ecx, ebp
xor ebx, esi
xor ecx, dword [esp + 4]
xor ebx, dword [esp + 0x10]
mul edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], edx
and ebx, 0x22222222
and ecx, 0x22222222
mul dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0xa0]
mov edi, edx
mul dword [esp + 0x40]
mov ebp, eax
mov eax, dword [esp + 0x2c]
xor edx, edi
mov dword [esp + 0x18], edx
xor ebp, esi
mul dword [esp + 0x3c]
mov edi, eax
mov eax, dword [esp + 0x20]
mov esi, edx
xor esi, dword [esp + 0x18]
xor edi, ebp
xor edi, dword [esp + 4]
mul dword [esp + 0x3c]
xor esi, dword [esp + 0x10]
and edi, 0x44444444
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], edx
and esi, 0x44444444
mul dword [esp + 0x5c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], edx
mul dword [esp + 0x34]
xor eax, dword [esp + 0x70]
mov ebp, edx
xor ebp, dword [esp + 4]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x2c]
mul dword [esp + 0x40]
xor edx, ebp
xor eax, dword [esp + 0x70]
mov ebp, dword [esp + 0xc]
xor edx, dword [esp + 0x10]
xor eax, dword [esp + 0x20]
and ebp, 0x11111111
or ebx, ebp
mov ebp, dword [esp + 8]
and edx, 0x8888888
or edi, ebx
mov ebx, dword [esp + 0x38]
and eax, 0x88888888
or eax, edi
and ebp, 0x11111111
or ecx, ebp
mov edi, eax
mov eax, dword [esp + 0x1c]
or esi, ecx
mov ecx, dword [esp + 0x8c]
or edx, esi
mov esi, eax
xor ebx, eax
shl ecx, 0x1f
shl esi, 0x19
xor esi, ecx
movd ecx, xmm0
pshufd xmm0, xmm3, 0xe5
mov ebp, esi
xor ecx, edi
movd esi, xmm4
xor edi, dword [esp + 0x24]
xor ecx, esi
mov dword [esp + 0x70], esi
xor ebp, ecx
movd ecx, xmm1
xor ecx, edx
xor edx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
movd ecx, xmm0
pshufd xmm0, xmm2, 0xe5
xor ebx, ecx
xor ecx, dword [esp + 0xf0]
movd esi, xmm0
pshufd xmm0, xmm4, 0xe5
xor edi, ebx
xor ebx, dword [esp + 0x70]
mov dword [esp + 0x20], edi
xor edx, ecx
xor ebp, edx
mov edx, dword [esp + 0x90]
shl edx, 0x1e
xor ebp, edx
mov edx, ebp
mov eax, ebp
mov dword [esp + 0x2c], ebp
shr edx, 1
shr eax, 2
xor edx, esi
xor eax, edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xc0], eax
mov eax, ebp
shld ebp, edi, 0x1f
xor edx, esi
mov dword [esp + 0xb0], edx
xor ebp, edx
mov edx, eax
mov eax, dword [esp + 0xf0]
shld edx, edi, 0x1e
movd edi, xmm0
xor edx, ebp
mov ebp, dword [esp + 8]
xor ecx, edi
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
xor ebp, edi
mov edi, eax
shr edi, 2
xor ecx, edi
mov edi, eax
shld edi, edx, 0x1f
mov dword [esp + 8], edi
mov edi, eax
shld edi, edx, 0x1e
shrd edx, eax, 7
shr eax, 7
xor ecx, eax
mov eax, dword [esp + 0x20]
xor ebx, edi
mov edi, dword [esp + 0x2c]
xor ecx, esi
xor ebx, edx
mov edx, dword [esp + 0xdc]
xor ecx, dword [esp + 0xe0]
xor ebx, dword [esp + 0xb0]
mov esi, eax
shl esi, 0x1f
add edx, 0x10
xor ecx, esi
mov esi, eax
xor ebx, dword [esp + 0x24]
shl esi, 0x1e
xor ecx, esi
mov esi, edi
shr esi, 7
xor esi, dword [esp + 0xc0]
xor ebx, ebp
xor ebx, dword [esp + 8]
xor esi, edi
shld edi, eax, 0x19
xor edi, dword [esp + 0xa0]
xor edi, eax
shl eax, 0x19
xor ecx, eax
mov eax, dword [esp + 0xc]
shr eax, 1
xor ecx, eax
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
mov dword [esp + 0x88], eax
cmp eax, 0xf
mov eax, ebx
ja 0x1008ad60
mov ebx, dword [esp + 0x220]
bswap eax
bswap esi
bswap edi
bswap ecx
mov edx, eax
mov dword [ebx + 4], edi
mov dword [ebx], esi
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], ecx
add esp, 0x20c
pop esi
pop edi
pop ebx
pop ebp
ret