Function at 0x46e5b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2b0
mov eax, dword [esp + 0x2c4]
test dword [esp + 0x2dc], 0xfffffff0
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
bswap esi
bswap edi
bswap edx
bswap ecx
je 0x46f699
mov eax, dword [esp + 0x2d0]
mov ebp, dword [esp + 0x2d4]
movdqa xmm4, xmmword [0x5ba5b0]
movdqa xmm5, xmmword [0x5ba5c0]
mov ebx, eax
movd xmm1, ebp
and ebx, 0x11111111
mov dword [esp + 0x64], ebx
mov ebx, eax
and ebx, 0x88888888
mov dword [esp + 0x60], ebx
mov ebx, ebp
xor ebx, eax
movd xmm0, ebx
mov ebx, eax
and ebx, 0x44444444
punpckldq xmm0, xmm1
movd xmm1, dword [esp + 0x2d4]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x2cc]
punpcklqdq xmm1, xmm0
xor ebp, ebx
movd xmm2, ebx
xor ebx, dword [esp + 0x2c8]
movdqa xmm0, xmm1
movdqa xmm6, xmm1
mov dword [esp + 0x88], ebp
mov ebp, eax
and eax, 0x22222222
pand xmm0, xmm4
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x2c8]
movdqu xmmword [esp + 0x1b0], xmm0
movdqa xmm0, xmm1
pand xmm0, xmm5
movd xmm3, ebx
movdqu xmmword [esp + 0x1a0], xmm0
mov ebx, dword [esp + 0x2dc]
punpckldq xmm3, xmm2
movd xmm2, dword [esp + 0x2cc]
xor ebp, eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c], ebp
and ebx, 0xfffffff0
punpcklqdq xmm2, xmm3
neg ebx
movd xmm3, eax
xor eax, ebp
mov ebp, dword [esp + 0x2c8]
movdqa xmm7, xmm2
movd xmm0, eax
punpckldq xmm0, xmm3
punpcklqdq xmm3, xmm0
movdqa xmm0, xmmword [0x5ba5d0]
mov eax, ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], ebp
and ebp, 0x11111111
and dword [esp + 0x7c], 0x44444444
and dword [esp + 0x78], 0x22222222
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x1c]
and eax, 0x88888888
mov dword [esp + 0x80], eax
pand xmm6, xmm0
pand xmm7, xmm0
movdqu xmmword [esp + 0x190], xmm6
movdqa xmm6, xmmword [0x5ba5e0]
movdqu xmmword [esp + 0x260], xmm7
mov eax, ebp
and eax, 0x11111111
mov dword [esp + 0x38], eax
mov eax, ebp
pand xmm1, xmm6
and eax, 0x88888888
movdqu xmmword [esp + 0x240], xmm1
movdqa xmm1, xmm2
mov dword [esp + 0x50], eax
mov eax, ebp
and ebp, 0x22222222
pand xmm1, xmm4
and eax, 0x44444444
mov dword [esp + 0x1c], ebp
movdqu xmmword [esp + 0x210], xmm1
movdqa xmm1, xmm2
pand xmm2, xmm6
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2d8]
movdqu xmmword [esp + 0x230], xmm2
movdqa xmm2, xmm3
pand xmm1, xmm5
pand xmm2, xmm4
movdqa xmm4, xmm3
movdqu xmmword [esp + 0x200], xmm1
movdqu xmmword [esp + 0x1f0], xmm2
movdqa xmm2, xmm3
pand xmm4, xmm5
pand xmm3, xmm6
pand xmm2, xmm0
add eax, 8
movdqu xmmword [esp + 0x1e0], xmm4
movdqu xmmword [esp + 0x220], xmm3
movdqu xmmword [esp + 0x1d0], xmm2
nop word cs:[eax + eax]
nop dword [eax + eax]
mov dword [esp + 0x34], eax
mov dword [esp + 0x16c], ebx
movdqa xmm1, xmmword [0x5ba5b0]
movdqu xmm4, xmmword [esp + 0x1a0]
movdqa xmm5, xmmword [0x5ba5d0]
movdqu xmm7, xmmword [esp + 0x190]
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x34]
mov ebp, dword [ebx + 4]
mov eax, dword [eax]
bswap ebp
bswap eax
xor ebp, ecx
mov ecx, dword [esp + 0x34]
xor eax, edx
movd xmm6, eax
mov edx, dword [ecx - 8]
mov ecx, dword [esp + 0x34]
mov ebx, dword [ecx - 4]
mov ecx, eax
bswap edx
xor ecx, ebp
xor edx, esi
mov esi, dword [esp + 0x58]
movd xmm0, ecx
mov ecx, edx
punpckldq xmm0, xmm6
punpcklqdq xmm6, xmm0
bswap ebx
movdqa xmm0, xmm6
movdqa xmm2, xmm6
xor ebx, edi
mov edi, ebp
pand xmm0, xmm1
movdqu xmm1, xmmword [esp + 0x1b0]
xor ecx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
mov dword [esp], ebx
xor ebx, ebp
and edi, 0x22222222
movdqa xmm3, xmm0
mov dword [esp + 0x14], ebx
mov ebx, ebp
and ebx, 0x44444444
pmuludq xmm3, xmm1
movdqa xmm1, xmmword [0x5ba5e0]
pand xmm2, xmm1
movdqa xmm1, xmm2
pmuludq xmm1, xmm4
movdqa xmm4, xmm6
pand xmm4, xmm5
movdqa xmm5, xmm4
pmuludq xmm5, xmm7
movdqu xmm7, xmmword [esp + 0x1a0]
pxor xmm5, xmm1
movdqa xmm1, xmmword [0x5ba5c0]
pand xmm6, xmm1
movdqu xmmword [esp + 0x88], xmm6
movdqa xmm1, xmm6
movdqu xmm6, xmmword [esp + 0x240]
pmuludq xmm1, xmm6
pxor xmm1, xmm5
movdqa xmm5, xmm2
pxor xmm1, xmm3
movdqa xmm3, xmm0
pmuludq xmm3, xmm6
movdqu xmm6, xmmword [esp + 0x1b0]
pmuludq xmm5, xmm6
movdqa xmm6, xmm4
pmuludq xmm6, xmm7
movdqu xmm7, xmmword [esp + 0x190]
pxor xmm6, xmm5
movdqu xmm5, xmmword [esp + 0x88]
pmuludq xmm5, xmm7
movdqu xmm7, xmmword [esp + 0x1b0]
pxor xmm5, xmm6
movdqu xmm6, xmmword [esp + 0x240]
pxor xmm5, xmm3
movdqa xmm3, xmm2
pmuludq xmm3, xmm6
movdqa xmm6, xmm4
pmuludq xmm6, xmm7
movdqu xmm7, xmmword [esp + 0x1a0]
pxor xmm6, xmm3
movdqu xmm3, xmmword [esp + 0x88]
pmuludq xmm3, xmm7
movdqu xmm7, xmmword [esp + 0x190]
pxor xmm3, xmm6
movdqa xmm6, xmm0
pmuludq xmm6, xmm7
pxor xmm3, xmm6
movdqu xmm6, xmmword [esp + 0x1a0]
pmuludq xmm0, xmm6
movdqu xmm6, xmmword [esp + 0x190]
pmuludq xmm2, xmm6
movdqu xmm6, xmmword [esp + 0x240]
pmuludq xmm4, xmm6
movdqu xmm6, xmmword [esp + 0x1b0]
pxor xmm4, xmm2
movdqu xmm2, xmmword [esp + 0x88]
pmuludq xmm2, xmm6
pxor xmm2, xmm4
movd xmm4, edx
xor edx, eax
pxor xmm2, xmm0
movdqa xmm0, xmmword [0x5ba5f0]
mov dword [esp + 0x11c], edx
pand xmm1, xmm0
movdqa xmm0, xmmword [str.________________DDDDDDDDDDDDDDDD]
pand xmm5, xmm0
movdqa xmm0, xmmword [0x5ba610]
pand xmm3, xmm0
movdqa xmm0, xmmword [0x5ba620]
por xmm3, xmm5
pand xmm2, xmm0
movd xmm0, ecx
mov ecx, ebp
and ebp, 0x11111111
mov eax, ebp
and ecx, 0x88888888
por xmm2, xmm3
punpckldq xmm0, xmm4
movdqu xmm3, xmmword [esp + 0x230]
mul dword [esp + 0x64]
mov dword [esp + 0xc], ecx
punpcklqdq xmm4, xmm0
por xmm2, xmm1
movdqu xmm0, xmmword [esp + 0x210]
movdqu xmmword [esp + 0x88], xmm2
movdqa xmm2, xmm4
movdqa xmm7, xmm4
movdqa xmm1, xmm4
pand xmm4, xmmword [0x5ba5c0]
pand xmm2, xmmword [0x5ba5b0]
pand xmm7, xmmword [0x5ba5e0]
pand xmm1, xmmword [0x5ba5d0]
mov dword [esp + 0x84], eax
mov eax, edi
mov dword [esp + 0x164], edx
mul dword [esp + 0x60]
movdqu xmmword [esp + 0x250], xmm4
movdqu xmmword [esp + 0x270], xmm2
pmuludq xmm2, xmm0
movdqu xmm0, xmmword [esp + 0x200]
movdqa xmm5, xmm7
movdqa xmm6, xmm1
movdqu xmmword [esp + 0x280], xmm1
movdqu xmmword [esp + 0x290], xmm7
mov dword [esp + 0x160], eax
mov eax, ebx
mov dword [esp + 0x15c], edx
mul dword [esp + 0x5c]
pmuludq xmm5, xmm0
movdqu xmm0, xmmword [esp + 0x260]
mov dword [esp + 0x150], eax
mov eax, ecx
mov dword [esp + 0x154], edx
pmuludq xmm6, xmm0
movdqa xmm0, xmm4
mul esi
pxor xmm6, xmm5
pmuludq xmm0, xmm3
movdqu xmm5, xmmword [esp + 0x210]
movdqa xmm3, xmm1
mov dword [esp + 0x168], eax
mov eax, ebp
mov dword [esp + 0x30], edx
pxor xmm0, xmm6
movdqa xmm6, xmm1
movdqu xmm1, xmmword [esp + 0x200]
mul esi
mov esi, dword [esp + 0x64]
pxor xmm0, xmm2
movdqa xmm2, xmm7
mov dword [esp + 0x148], eax
mov eax, edi
mov dword [esp + 0x14c], edx
movdqu xmmword [esp + 0x1c0], xmm0
movdqa xmm0, xmm7
movdqu xmm7, xmmword [esp + 0x260]
pmuludq xmm2, xmm5
pmuludq xmm6, xmm1
mul esi
pxor xmm6, xmm2
mov dword [esp + 0x144], eax
mov eax, ebx
mov dword [esp + 0x140], edx
pmuludq xmm4, xmm7
mul dword [esp + 0x60]
pxor xmm4, xmm6
movdqu xmm6, xmmword [esp + 0x230]
movdqa xmm1, xmm4
movdqu xmm4, xmmword [esp + 0x270]
mov dword [esp + 0x138], eax
mov eax, ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x13c], edx
movdqa xmm2, xmm4
pmuludq xmm2, xmm6
pxor xmm1, xmm2
movdqa xmm2, xmm0
movdqa xmm0, xmm3
movdqu xmm3, xmmword [esp + 0x250]
mul ecx
pmuludq xmm0, xmm5
movdqu xmm5, xmmword [esp + 0x200]
pmuludq xmm2, xmm6
movdqu xmmword [esp + 0x2a0], xmm1
movdqu xmm1, xmmword [esp + 0x280]
mov dword [esp + 0x2c], eax
mov eax, ebp
mov dword [esp + 0x158], edx
pxor xmm0, xmm2
movdqa xmm2, xmm4
mul ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x12c], eax
mov eax, edi
mov dword [esp + 0x134], edx
movdqa xmm6, xmm3
mul dword [esp + 0x58]
pmuludq xmm6, xmm5
pmuludq xmm2, xmm5
pxor xmm6, xmm0
movdqa xmm0, xmm4
movdqu xmm4, xmmword [esp + 0x230]
pmuludq xmm0, xmm7
pxor xmm6, xmm0
movdqu xmm0, xmmword [esp + 0x290]
mov dword [esp + 0x128], eax
mov eax, ebx
mov dword [esp + 0x124], edx
pand xmm6, xmmword [0x5ba610]
mul esi
mov esi, dword [esp + 0xc]
pmuludq xmm1, xmm4
movdqu xmm4, xmmword [esp + 0x210]
mov dword [esp + 0x20], eax
mov dword [esp + 0x120], edx
pmuludq xmm0, xmm7
pxor xmm1, xmm0
mov eax, esi
pmuludq xmm3, xmm4
movdqu xmm4, xmmword [esp + 0x2a0]
mul ecx
pxor xmm3, xmm1
mov dword [esp + 0x28], eax
mov eax, ebp
mov dword [esp + 0x130], edx
mov ebp, dword [esp + 0x10]
pxor xmm3, xmm2
mul ecx
mov ecx, dword [esp + 0x80]
pand xmm3, xmmword [0x5ba620]
mov dword [esp + 0x108], eax
mov eax, edi
mov dword [esp + 0x110], edx
mov edi, dword [esp + 0x78]
pand xmm4, xmmword [str.________________DDDDDDDDDDDDDDDD]
mul dword [esp + 0x5c]
and ebp, 0x11111111
mov dword [esp + 0x10], ebp
por xmm6, xmm4
mov dword [esp + 0xfc], eax
mov eax, ebx
mov dword [esp + 0xf8], edx
mov ebx, dword [esp + 4]
por xmm3, xmm6
movdqu xmm6, xmmword [esp + 0x1c0]
mul dword [esp + 0x58]
and ebx, 0x22222222
pand xmm6, xmmword [0x5ba5f0]
mov dword [esp + 0xec], eax
mov eax, esi
mov dword [esp + 0x70], edx
mov esi, dword [esp + 0x7c]
mov dword [esp + 4], ebx
mul dword [esp + 0x64]
por xmm3, xmm6
movdqa xmm7, xmm3
mov dword [esp + 0xc], eax
mov eax, ebp
mov dword [esp + 0x74], edx
movdqu xmmword [esp + 0x250], xmm7
mul dword [esp + 0x54]
mov dword [esp + 0x118], eax
mov eax, ebx
mov dword [esp + 0x10c], edx
mul ecx
mov dword [esp + 0x104], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x100], edx
and eax, 0x44444444
mov dword [esp + 8], eax
mul esi
mov dword [esp + 0xf4], eax
mov eax, dword [esp]
mov dword [esp + 0xe8], edx
and eax, 0x88888888
mov dword [esp], eax
mul edi
mov dword [esp + 0x114], eax
mov eax, ebp
mov dword [esp + 0x24], edx
mul edi
mov dword [esp + 0xe0], eax
mov eax, ebx
mov dword [esp + 0xdc], edx
mov ebx, dword [esp + 8]
mul dword [esp + 0x54]
mov dword [esp + 0xd4], eax
mov eax, ebx
mov dword [esp + 0xd8], edx
mul ecx
mov ecx, dword [esp]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xcc], edx
mov eax, ecx
mul esi
mov dword [esp + 0xf0], eax
mov eax, ebp
mov ebp, dword [esp + 4]
mov dword [esp + 0xe4], edx
mul esi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
mov eax, ebp
mul edi
mov dword [esp + 0xbc], eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0xb8], edx
mul ebx
mov dword [esp + 0xb0], eax
mov eax, ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xb4], edx
mul ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc8], edx
mul ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xac], eax
mov eax, ebp
mov dword [esp + 0xa8], edx
mul esi
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xa4], edx
mul edi
mov dword [esp + 0x9c], eax
mov eax, dword [esp]
mov dword [esp + 0x68], edx
mul ebx
mov dword [esp + 8], eax
mov eax, ecx
mov dword [esp + 0x10], edx
and eax, 0x11111111
mov dword [esp + 0x170], eax
mul dword [esp + 0x38]
mov dword [esp + 0x48], eax
mov eax, ecx
mov dword [esp + 0x44], edx
and eax, 0x22222222
mov dword [esp], eax
mul dword [esp + 0x50]
mov esi, eax
mov eax, ecx
mov ebx, edx
and ecx, 0x88888888
and eax, 0x44444444
mov dword [esp + 4], ecx
mov dword [esp + 0x180], eax
mul dword [esp + 0x4c]
mov ebp, eax
mov eax, ecx
mov ecx, dword [esp + 0x1c]
mov edi, edx
xor ebp, esi
xor edi, ebx
mov esi, dword [esp + 0x180]
mul ecx
xor eax, ebp
xor edx, edi
mov edi, dword [esp + 0x170]
xor eax, dword [esp + 0x48]
xor edx, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov eax, edi
mov dword [esp + 0x44], edx
mul ecx
mov ecx, dword [esp + 0x38]
movd xmm2, dword [esp + 0x44]
movd xmm4, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov eax, dword [esp]
mov dword [esp + 0x3c], edx
punpckldq xmm4, xmm2
mul ecx
mov dword [esp + 0x18], eax
mov eax, esi
mov ebp, edx
mul dword [esp + 0x50]
mov ebx, edx
mov ecx, eax
mov eax, dword [esp + 4]
xor ebx, ebp
mov ebp, dword [esp + 0x4c]
xor ecx, dword [esp + 0x18]
mul ebp
xor eax, ecx
xor edx, ebx
xor eax, dword [esp + 0x40]
xor edx, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov eax, edi
mov dword [esp + 0x3c], edx
mul ebp
movd xmm0, dword [esp + 0x3c]
movd xmm1, dword [esp + 0x40]
mov dword [esp + 0x98], eax
mov eax, dword [esp]
mov dword [esp + 0x18], edx
punpckldq xmm1, xmm0
mul dword [esp + 0x1c]
punpcklqdq xmm4, xmm1
pand xmm4, xmmword [0x5ba640]
mov ebx, eax
mov eax, esi
mov ecx, edx
mul dword [esp + 0x38]
mov edi, eax
mov eax, dword [esp + 4]
mov esi, edx
xor edi, ebx
mov ebx, dword [esp + 0x50]
xor esi, ecx
mul ebx
mov ebp, eax
mov eax, dword [esp + 0x170]
mov ecx, edx
xor ecx, esi
xor ebp, edi
xor ecx, dword [esp + 0x18]
xor ebp, dword [esp + 0x98]
mul ebx
mov dword [esp + 0x170], eax
mov eax, dword [esp]
mov ebx, edx
movd xmm0, ecx
mov ecx, dword [esp + 0x14]
movd xmm2, ebp
mov ebp, dword [esp + 0xec]
punpckldq xmm2, xmm0
mul dword [esp + 0x4c]
xor ebp, dword [esp + 0xfc]
mov dword [esp], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x18], edx
mul dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 4]
mov esi, edx
xor edi, dword [esp]
xor esi, dword [esp + 0x18]
mul dword [esp + 0x38]
xor eax, edi
xor edx, esi
mov edi, dword [esp + 0x168]
mov esi, dword [esp + 0x2c]
xor eax, dword [esp + 0x170]
xor edx, ebx
mov ebx, dword [esp + 0x138]
movd xmm5, edx
mov edx, dword [esp + 0x154]
movd xmm6, eax
mov eax, dword [esp + 0x11c]
xor ebx, dword [esp + 0x144]
xor edx, dword [esp + 0x15c]
punpckldq xmm6, xmm5
punpcklqdq xmm2, xmm6
pand xmm2, xmmword [0x5ba630]
xor ecx, eax
movd xmm1, eax
mov eax, dword [esp + 0x150]
xor esi, ebx
mov ebx, dword [esp + 0x158]
movd xmm3, ecx
xor esi, dword [esp + 0x148]
punpckldq xmm3, xmm1
punpcklqdq xmm1, xmm3
por xmm2, xmm4
movdqu xmm4, xmmword [esp + 0x220]
xor eax, dword [esp + 0x160]
pshufd xmm0, xmm2, 0xee
movdqa xmm3, xmm1
movdqa xmm5, xmm1
por xmm0, xmm2
pand xmm3, xmmword [0x5ba5e0]
pand xmm5, xmmword [0x5ba5d0]
and esi, 0x22222222
movdqu xmmword [esp + 0x170], xmm0
movdqu xmm0, xmmword [esp + 0x1e0]
xor edi, eax
mov eax, dword [esp + 0x30]
movdqa xmm2, xmm3
movdqa xmm6, xmm5
xor edi, dword [esp + 0x84]
pmuludq xmm2, xmm0
movdqu xmm0, xmmword [esp + 0x1d0]
xor eax, edx
mov edx, dword [esp + 0x120]
xor eax, dword [esp + 0x164]
and edi, 0x11111111
pmuludq xmm6, xmm0
movdqu xmm0, xmmword [esp + 0x88]
or esi, edi
pxor xmm6, xmm2
mov dword [esp + 0x2c], esi
xor edx, dword [esp + 0x124]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x13c]
pshufd xmm2, xmm0, 0xee
movd dword [esp + 4], xmm2
pshufd xmm2, xmm0, 0xff
movd ecx, xmm2
pshufd xmm2, xmm7, 0xee
xor eax, dword [esp + 0x140]
movd dword [esp + 0x14], xmm2
pshufd xmm2, xmm7, 0xff
movdqa xmm7, xmm5
movd dword [esp], xmm2
movdqa xmm2, xmm1
pand xmm1, xmmword [0x5ba5c0]
pand xmm2, xmmword [0x5ba5b0]
xor ebx, eax
mov eax, dword [esp + 0x20]
movdqa xmm0, xmm1
xor ebx, dword [esp + 0x14c]
pmuludq xmm0, xmm4
movdqu xmm4, xmmword [esp + 0x1f0]
pxor xmm0, xmm6
movdqa xmm6, xmm2
xor eax, dword [esp + 0x128]
and ebx, 0x22222222
pmuludq xmm6, xmm4
pxor xmm0, xmm6
movdqa xmm6, xmm3
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
pmuludq xmm6, xmm4
movdqu xmm4, xmmword [esp + 0x1e0]
movdqu xmmword [esp + 0x180], xmm0
movdqu xmm0, xmmword [esp + 0x1d0]
xor eax, dword [esp + 0x20]
pmuludq xmm7, xmm4
pxor xmm7, xmm6
movdqa xmm6, xmm1
pmuludq xmm6, xmm0
movdqu xmm0, xmmword [esp + 0x220]
pxor xmm6, xmm7
movdqa xmm7, xmm2
xor eax, dword [esp + 0x12c]
pmuludq xmm7, xmm0
pxor xmm6, xmm7
movdqa xmm7, xmm3
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x130]
movdqu xmmword [esp + 0x1c0], xmm6
movdqu xmm6, xmmword [esp + 0x1f0]
pmuludq xmm7, xmm0
movdqa xmm0, xmm5
xor eax, edx
pmuludq xmm0, xmm6
xor eax, dword [esp + 0x134]
pxor xmm0, xmm7
movdqa xmm7, xmm1
pmuludq xmm7, xmm4
movdqu xmm4, xmmword [esp + 0x1d0]
pxor xmm7, xmm0
movdqa xmm0, xmm2
mov edx, eax
mov eax, dword [esp + 0x70]
and edx, 0x44444444
pmuludq xmm0, xmm4
pmuludq xmm3, xmm4
movdqu xmm4, xmmword [esp + 0x250]
pxor xmm7, xmm0
movdqu xmm0, xmmword [esp + 0x220]
pand xmm7, xmmword [0x5ba610]
xor eax, dword [esp + 0xf8]
pmuludq xmm5, xmm0
movdqu xmm0, xmmword [esp + 0x1f0]
pxor xmm5, xmm3
movdqu xmm3, xmmword [esp + 0x88]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc]
pmuludq xmm1, xmm0
movdqa xmm0, xmm2
movdqu xmm2, xmmword [esp + 0x1e0]
pxor xmm1, xmm5
xor eax, ebp
mov ebp, dword [esp + 0x74]
xor eax, dword [esp + 0x108]
pmuludq xmm0, xmm2
movdqu xmm2, xmmword [esp + 0x170]
pxor xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x1c0]
xor ebp, dword [esp + 0x70]
pand xmm1, xmmword [0x5ba620]
and eax, 0x88888888
pand xmm0, xmmword [str.________________DDDDDDDDDDDDDDDD]
xor ebp, dword [esp + 0x110]
por xmm7, xmm0
movdqu xmm0, xmmword [esp + 0x180]
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x30]
por xmm1, xmm7
mov edi, dword [esp + 0x74]
pand xmm0, xmmword [0x5ba5f0]
and ebp, 0x11111111
and edi, 0x8888888
or ebx, ebp
mov ebp, dword [esp + 0xe4]
or edi, edx
mov edx, dword [esp + 0x28]
or edi, ebx
mov ebx, dword [esp + 0xcc]
por xmm1, xmm0
xor ecx, edi
pshufd xmm0, xmm1, 0xee
and edx, 0x44444444
or eax, edx
mov edx, dword [esp + 4]
xor ebx, dword [esp + 0xd8]
or eax, esi
mov esi, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
xor edx, eax
movd eax, xmm3
xor ebp, ebx
mov ebx, dword [esp + 0xf0]
xor edx, edi
xor ecx, eax
mov edi, dword [esp + 0xf4]
xor esi, dword [esp + 0xb8]
xor ebp, dword [esp + 0xdc]
xor edx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe8]
xor edi, dword [esp + 0x104]
and ebp, 0x22222222
xor edx, dword [esp + 0x100]
xor eax, edx
mov edx, dword [esp + 0xb0]
xor eax, dword [esp + 0x10c]
xor edx, dword [esp + 0xbc]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x114]
xor eax, edi
xor eax, dword [esp + 0x118]
mov edi, eax
mov eax, dword [esp + 0xd0]
and edi, 0x11111111
xor eax, dword [esp + 0xd4]
xor ebx, eax
mov eax, dword [esp + 0x6c]
xor ebx, dword [esp + 0xe0]
xor eax, edx
mov edx, dword [esp + 0xc8]
xor eax, dword [esp + 0xc0]
and ebx, 0x22222222
or ebx, edi
mov edi, dword [esp]
xor edx, esi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x68]
xor edx, dword [esp + 0xc4]
xor esi, dword [esp + 0xa0]
xor eax, dword [esp + 0xa4]
and edx, 0x44444444
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x68]
xor eax, dword [esp + 0xa8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 8]
xor eax, esi
mov esi, dword [esp + 0x24]
xor eax, dword [esp + 0xac]
and esi, 0x11111111
or ebp, esi
mov esi, dword [esp + 0x6c]
and eax, 0x88888888
or edx, ebp
movd ebp, xmm2
pshufd xmm2, xmm2, 0x55
and esi, 0x44444444
or esi, ebx
mov ebx, dword [esp + 0x14]
or eax, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 8], eax
xor ebx, eax
movd eax, xmm4
and esi, 0x8888888
or esi, edx
mov edx, dword [esp + 0xc]
xor edi, esi
xor ebx, esi
movd esi, xmm1
xor ebx, eax
xor edi, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x30], esi
mov dword [esp], edi
mov dword [esp + 0x14], ebx
mov edi, edx
xor ecx, edx
shl edi, 0x19
shl eax, 0x1f
xor edi, eax
movd eax, xmm0
pshufd xmm0, xmm3, 0x55
pshufd xmm3, xmm1, 0xff
movd edx, xmm0
xor eax, ebp
pshufd xmm0, xmm4, 0x55
xor ebp, dword [esp + 8]
xor ecx, edx
xor edx, dword [esp + 4]
xor eax, esi
movd esi, xmm3
xor edi, eax
movd eax, xmm2
xor esi, eax
xor eax, ebx
mov dword [esp + 0x88], esi
movd esi, xmm0
xor ebp, ecx
pshufd xmm0, xmm1, 0x55
xor ecx, dword [esp + 0x30]
xor eax, edx
mov dword [esp + 0x20], esi
xor edi, eax
mov eax, dword [esp + 0x2c]
shl eax, 0x1e
xor edi, eax
mov eax, edi
mov ebx, edi
shr eax, 1
shr ebx, 2
xor eax, esi
xor ebx, eax
mov eax, dword [esp]
mov dword [esp + 0x2c], ebx
mov ebx, edi
shld ebx, ebp, 0x1f
xor eax, esi
mov dword [esp], eax
xor ebx, eax
mov eax, edi
shld eax, ebp, 0x1e
xor eax, ebx
movd ebx, xmm0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 4]
xor dword [esp + 0x88], ebx
xor edx, ebx
mov ebx, eax
mov esi, eax
shr ebx, 2
xor edx, ebx
mov ebx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], ebx
shld esi, eax, 0x1f
mov dword [esp + 0x24], esi
mov esi, ebx
shld esi, eax, 0x1e
shrd eax, ebx, 7
shr ebx, 7
xor edx, ebx
xor ecx, esi
mov esi, ebp
mov ebx, dword [esp + 0xc]
xor edx, dword [esp + 0x20]
shl esi, 0x1f
xor ecx, eax
mov eax, dword [esp + 0x34]
xor ecx, dword [esp]
shr ebx, 1
xor edx, dword [esp + 0x14]
add eax, 0x10
xor ecx, dword [esp + 8]
xor edx, esi
mov esi, ebp
shl esi, 0x1e
xor ecx, dword [esp + 0x88]
xor edx, esi
mov esi, edi
shr esi, 7
xor esi, dword [esp + 0x2c]
xor ecx, dword [esp + 0x24]
xor esi, edi
shld edi, ebp, 0x19
xor edi, dword [esp + 0x28]
xor edi, ebp
shl ebp, 0x19
xor edx, ebp
xor edx, ebx
mov ebx, dword [esp + 0x16c]
add ebx, 0x10
jne 0x46e800
mov eax, dword [esp + 0x2c4]
bswap esi
bswap edi
bswap edx
bswap ecx
mov dword [eax + 4], edi
mov dword [eax], esi
mov dword [eax + 0xc], ecx
mov dword [eax + 8], edx
add esp, 0x2b0
pop esi
pop edi
pop ebx
pop ebp
ret