Function at 0x4e501f
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2b4
mov ebx, dword [ecx + 0x20]
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x108], edx
movups xmm5, xmmword [ecx + 0x20]
movdqu xmm4, xmmword [ecx]
movdqu xmm1, xmmword [ecx + 0x10]
mov dword [esp + 0x104], ecx
mov ecx, 6
mov esi, ebx
mov edx, eax
mov edi, ebx
movups xmmword [esp + 0x174], xmm5
movdqu xmmword [esp + 0xe4], xmm1
movdqu xmmword [esp + 0x114], xmm1
movdqu xmmword [esp + 0xf4], xmm4
movdqu xmmword [esp + 0xc4], xmm4
movdqu xmmword [esp + 0xd4], xmm4
add esi, 1
adc edx, 0
movd xmm0, esi
add edi, 2
mov esi, eax
adc esi, 0
movd xmm6, edx
movd xmm3, edi
add ebx, 3
punpcklqdq xmm6, xmm0
movd xmm0, esi
adc eax, 0
movd xmm2, ebx
punpcklqdq xmm0, xmm3
shufps xmm6, xmm5, 0xe2
shufps xmm0, xmm5, 0xe2
movups xmmword [esp + 0x164], xmm6
movdqa xmm6, xmm4
movups xmmword [esp + 0x184], xmm0
movd xmm0, eax
punpcklqdq xmm0, xmm2
movdqa xmm2, xmmword [str.expand_32_byte_k]
shufps xmm0, xmm5, 0xe2
movdqa xmm5, xmm1
movups xmmword [esp + 0x194], xmm0
movdqa xmm7, xmm2
movdqa xmm0, xmm2
movdqa xmm3, xmm2
movdqu xmm4, xmmword [esp + 0xd4]
paddd xmm7, xmm6
mov dword [esp + 0x110], ecx
movd edi, xmm1
movd dword [esp + 0xa0], xmm5
movd dword [esp + 0x64], xmm6
movd dword [esp + 0x14], xmm7
paddd xmm2, xmm4
pshufd xmm4, xmm2, 0x55
movd dword [esp + 0x1c], xmm2
movd dword [esp + 0x18], xmm4
pshufd xmm4, xmm2, 0xee
movd eax, xmm4
pshufd xmm4, xmm2, 0xff
movdqu xmm2, xmmword [esp + 0xf4]
movd ecx, xmm4
pshufd xmm4, xmm7, 0x55
mov dword [esp + 0x4c], eax
movd dword [esp + 0x34], xmm4
pshufd xmm4, xmm7, 0xee
mov dword [esp + 0x38], ecx
movd dword [esp + 0x58], xmm4
pshufd xmm4, xmm7, 0xff
pshufd xmm7, xmm6, 0xee
paddd xmm0, xmm2
movd dword [esp + 0x54], xmm4
movdqu xmm2, xmmword [esp + 0x174]
movd dword [esp + 0x74], xmm7
pshufd xmm4, xmm0, 0x55
movd dword [esp + 0x3c], xmm0
movd dword [esp + 0x5c], xmm4
pshufd xmm4, xmm0, 0xee
pshufd xmm0, xmm0, 0xff
movd dword [esp + 0x60], xmm0
movdqu xmm0, xmmword [esp + 0xc4]
movd dword [esp + 0x44], xmm4
movdqu xmm4, xmmword [esp + 0x194]
movd dword [esp + 0xa4], xmm2
paddd xmm3, xmm0
pshufd xmm0, xmm3, 0x55
movd dword [esp + 0x88], xmm3
movd dword [esp + 0x40], xmm0
pshufd xmm0, xmm3, 0xee
movd dword [esp + 0x50], xmm0
pshufd xmm0, xmm3, 0xff
movd dword [esp + 0x20], xmm0
pshufd xmm0, xmm2, 0x55
movd dword [esp + 0x28], xmm0
pshufd xmm0, xmm2, 0xee
movd esi, xmm0
pshufd xmm0, xmm2, 0xff
movdqu xmm2, xmmword [esp + 0x164]
movd edx, xmm0
xor edx, ecx
mov ecx, esi
mov esi, dword [esp + 0x28]
xor ecx, eax
mov eax, dword [esp + 0xa4]
rol edx, 0x10
pshufd xmm0, xmm2, 0x55
movd dword [esp + 0x30], xmm2
mov dword [esp + 0x2c], edx
rol ecx, 0x10
movd dword [esp + 4], xmm0
pshufd xmm0, xmm2, 0xee
mov dword [esp + 0x24], ecx
movd dword [esp + 8], xmm0
pshufd xmm0, xmm2, 0xff
movdqu xmm2, xmmword [esp + 0x184]
xor esi, dword [esp + 0x18]
xor eax, dword [esp + 0x1c]
movd dword [esp], xmm0
pshufd xmm0, xmm2, 0x55
rol esi, 0x10
movd dword [esp + 0xc], xmm0
pshufd xmm0, xmm1, 0x55
rol eax, 0x10
mov dword [esp + 0x28], esi
movd dword [esp + 0x48], xmm0
pshufd xmm0, xmm1, 0xee
mov dword [esp + 0xa4], eax
add edi, eax
movd dword [esp + 0x7c], xmm0
pshufd xmm0, xmm1, 0xff
movdqu xmm1, xmmword [esp + 0xd4]
mov dword [esp + 0xd4], edi
mov edi, dword [esp + 0x48]
movd dword [esp + 0x68], xmm0
pshufd xmm0, xmm5, 0x55
mov eax, dword [esp + 0x68]
movd dword [esp + 0xc0], xmm0
pshufd xmm0, xmm5, 0xee
movd dword [esp + 0x84], xmm0
pshufd xmm0, xmm1, 0x55
add edi, esi
mov esi, dword [esp + 0x7c]
movd ebp, xmm1
movd dword [esp + 0x78], xmm0
pshufd xmm0, xmm1, 0xee
mov dword [esp + 0x48], edi
xor ebp, dword [esp + 0xd4]
add eax, edx
mov edx, dword [esp + 0x78]
movd dword [esp + 0x98], xmm0
pshufd xmm0, xmm1, 0xff
movd ebx, xmm0
mov dword [esp + 0x68], eax
pshufd xmm0, xmm5, 0xff
movdqu xmm5, xmmword [esp + 0x114]
xor ebx, eax
add esi, ecx
mov eax, dword [esp + 0x4c]
movd dword [esp + 0x9c], xmm0
pshufd xmm0, xmm6, 0x55
mov ecx, ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x7c], esi
rol ebp, 0xc
movd dword [esp + 0x80], xmm0
xor edx, edi
mov dword [esp + 0xbc], ebp
mov edi, edx
mov edx, dword [esp + 0x2c]
rol edi, 0xc
mov dword [esp + 0x78], edi
add dword [esp + 0x18], edi
mov edi, dword [esp + 0x38]
xor ebx, esi
mov esi, ecx
mov ecx, dword [esp + 0x1c]
rol ebx, 0xc
rol esi, 0xc
add eax, ebx
mov dword [esp + 0x98], ebx
mov ebx, esi
mov dword [esp + 0x4c], eax
add edi, esi
mov esi, dword [esp + 0x24]
add ecx, ebp
mov ebp, dword [esp + 0x4c]
xor edx, edi
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
rol edx, 8
mov dword [esp + 0x2c], edx
xor esi, eax
mov eax, dword [esp + 0xa4]
xor edi, dword [esp + 0x18]
xor eax, ecx
mov ecx, esi
mov esi, dword [esp + 0xd4]
rol eax, 8
rol ecx, 8
rol edi, 8
mov dword [esp + 0xa4], eax
mov dword [esp + 0x24], ecx
add dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x68]
add esi, eax
mov eax, dword [esp + 0x48]
add ecx, edx
mov edx, esi
xor ebx, ecx
mov dword [esp + 0x68], ecx
mov ecx, edi
add eax, edi
rol ebx, 7
mov dword [esp + 0x48], eax
xor dword [esp + 0x78], eax
mov eax, dword [esp + 0xbc]
add ebp, ebx
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0x38]
xor ecx, ebp
rol ecx, 0x10
add edx, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xb8]
xor eax, esi
mov dword [esp + 0xd4], edx
rol eax, 7
add ebx, eax
mov esi, eax
mov eax, dword [esp + 0x24]
xor ecx, edx
mov edx, dword [esp + 0x7c]
rol ecx, 0xc
add ebp, ecx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x1c]
xor eax, ebx
mov dword [esp + 0x4c], ebp
movd xmm1, ebp
mov ebp, dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x48]
rol edi, 0x10
mov dword [esp + 0x24], edi
add eax, edi
mov edi, dword [esp + 0x98]
xor esi, eax
mov dword [esp + 0x48], eax
mov eax, ebx
mov ebx, dword [esp + 0xa4]
rol esi, 0xc
add eax, esi
mov dword [esp + 0xbc], esi
mov esi, dword [esp + 0x2c]
movd xmm0, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
xor edi, edx
rol edi, 7
punpckldq xmm1, xmm0
add ebp, edi
xor ebx, ebp
rol eax, 7
rol ebx, 0x10
add ecx, eax
mov dword [esp + 0xa4], ebx
xor esi, ecx
rol esi, 0x10
add edx, esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x68]
xor eax, edx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x30]
rol eax, 0xc
add ecx, eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x54]
add esi, ebx
mov dword [esp + 0x1c], ecx
movd xmm3, ecx
mov ecx, dword [esp + 4]
xor edi, esi
xor edx, dword [esp + 0x14]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0xc0]
rol edi, 0xc
add ebp, edi
mov dword [esp + 0x98], edi
mov edi, dword [esp + 0x58]
xor dword [esp], eax
rol dword [esp], 0x10
movd xmm0, ebp
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 8]
xor ecx, dword [esp + 0x34]
rol edx, 0x10
punpckldq xmm3, xmm0
pshufd xmm0, xmm6, 0xff
movdqu xmm6, xmmword [esp + 0xc4]
mov dword [esp + 0x30], edx
add dword [esp + 0xa0], edx
mov edx, dword [esp + 0x84]
movd ebx, xmm0
pshufd xmm0, xmm2, 0xee
punpcklqdq xmm3, xmm1
movdqu xmmword [esp + 0x1e4], xmm3
movdqu xmm3, xmmword [esp + 0xe4]
xor ebp, edi
rol ecx, 0x10
rol ebp, 0x10
mov dword [esp + 4], ecx
add esi, ecx
mov ecx, dword [esp + 0x64]
add edx, ebp
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x9c]
xor dword [esp + 0x74], edx
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x80]
rol dword [esp + 0x74], 0xc
movd dword [esp + 0x6c], xmm3
add edi, dword [esp + 0x74]
xor ecx, dword [esp + 0xa0]
add ebp, dword [esp]
xor edx, esi
rol edx, 0xc
mov dword [esp + 0x64], ecx
rol dword [esp + 0x64], 0xc
mov dword [esp + 0x80], edx
xor ebx, ebp
mov ecx, ebx
mov ebx, dword [esp + 0x14]
rol ecx, 0xc
mov dword [esp + 0x94], ecx
add eax, ecx
mov ecx, dword [esp + 8]
add ebx, dword [esp + 0x64]
xor ecx, edi
rol ecx, 8
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xa0]
add ebx, edx
mov edx, dword [esp]
xor dword [esp + 4], ebx
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x30]
rol dword [esp + 4], 8
add esi, dword [esp + 4]
xor edx, eax
xor ebx, dword [esp + 0x14]
rol edx, 8
add ebp, edx
mov dword [esp], edx
mov edx, dword [esp + 0x64]
xor dword [esp + 0x80], esi
mov dword [esp + 0x9c], ebp
rol ebx, 8
add ecx, ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 8]
xor edx, ecx
rol edx, 7
add eax, edx
add dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x94]
xor ebx, ebp
mov ebp, dword [esp + 8]
rol ebx, 7
mov dword [esp + 0x94], ebx
add edi, ebx
mov ebx, edx
mov edx, dword [esp + 4]
xor ebp, eax
rol ebp, 0x10
add esi, ebp
xor edx, edi
xor ebx, esi
mov dword [esp + 0xc0], esi
mov esi, dword [esp + 0x94]
rol edx, 0x10
add ecx, edx
rol ebx, 0xc
add eax, ebx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x9c]
xor esi, ecx
movd ecx, xmm0
movd xmm0, eax
rol esi, 0xc
add edi, esi
mov dword [esp + 0x94], esi
mov esi, eax
mov eax, dword [esp + 0x24]
movd dword [esp + 0x24], xmm6
xor esi, ebp
mov ebp, dword [esp + 0x84]
movd xmm1, edi
xor edi, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x74]
punpckldq xmm1, xmm0
mov dword [esp + 0x58], edi
movd edi, xmm2
pshufd xmm0, xmm2, 0xff
movd dword [esp + 0x10], xmm0
pshufd xmm0, xmm4, 0x55
xor edi, dword [esp + 0x3c]
xor dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
movd dword [esp + 4], xmm0
pshufd xmm0, xmm3, 0x55
movd dword [esp + 0x70], xmm0
pshufd xmm0, xmm3, 0xee
xor esi, ebp
rol esi, 7
rol edi, 0x10
xor dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x6c], edi
xor dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
movd dword [esp + 0x2c], xmm0
pshufd xmm0, xmm3, 0xff
movdqu xmm3, xmmword [esp + 0xf4]
movd dword [esp + 0xf4], xmm4
movd dword [esp + 0x8c], xmm0
xor dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
pshufd xmm0, xmm3, 0x55
movd dword [esp + 0x90], xmm0
pshufd xmm0, xmm3, 0xee
movd dword [esp + 0xe4], xmm0
pshufd xmm0, xmm3, 0xff
movd dword [esp + 0x30], xmm0
pshufd xmm0, xmm4, 0xee
add eax, esi
movd dword [esp + 0xa4], xmm0
pshufd xmm0, xmm4, 0xff
xor edx, eax
rol edx, 0x10
add ebx, edx
xor esi, ebx
mov dword [esp + 0x9c], ebx
movd ebx, xmm3
rol esi, 0xc
xor ebx, dword [esp + 0x6c]
add eax, esi
mov dword [esp + 0x74], esi
mov esi, dword [esp]
movd dword [esp], xmm0
pshufd xmm0, xmm5, 0x55
movd xmm2, eax
xor eax, edx
mov edx, dword [esp + 0x80]
movd dword [esp + 0xb4], xmm0
pshufd xmm0, xmm5, 0xee
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
rol ebx, 0xc
rol edx, 7
add eax, edx
xor esi, eax
rol esi, 0x10
add ebp, esi
xor edx, ebp
mov dword [esp + 0x84], ebp
mov ebp, dword [esp + 0x44]
rol edx, 0xc
add eax, edx
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x5c]
movd xmm7, eax
xor eax, esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
xor ecx, ebp
punpckldq xmm7, xmm2
rol ecx, 0x10
punpcklqdq xmm7, xmm1
xor dword [esp + 0xc], edx
rol dword [esp + 0xc], 0x10
xor esi, eax
rol esi, 0x10
mov edx, esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x70]
add dword [esp + 0x8c], edx
mov edx, dword [esp + 0x30]
add esi, dword [esp + 0xc]
xor edx, dword [esp + 0x8c]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x3c]
rol dword [esp + 0x30], 0xc
add eax, dword [esp + 0x30]
add esi, ecx
xor dword [esp + 0xe4], esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x90]
rol dword [esp + 0xe4], 0xc
add edx, ebx
add ebp, dword [esp + 0xe4]
xor edi, edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x70]
xor dword [esp + 0x10], eax
rol edi, 8
add dword [esp + 0x6c], edi
xor esi, dword [esp + 0x70]
xor ecx, ebp
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0xc]
rol ecx, 8
add dword [esp + 0x2c], ecx
rol esi, 0xc
add dword [esp + 0x5c], esi
xor ebp, dword [esp + 0x5c]
rol ebp, 8
add edx, ebp
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x8c]
xor esi, edx
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x6c]
xor ebx, esi
rol ebx, 7
add eax, ebx
xor ecx, eax
rol ecx, 0x10
add edx, ecx
xor ebx, edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xe4]
rol ebx, 0xc
add eax, ebx
mov dword [esp + 0x10c], ebx
mov ebx, dword [esp + 0x30]
movd xmm3, eax
xor eax, ecx
mov ecx, dword [esp + 0xc]
movd dword [esp + 0xc], xmm0
pshufd xmm0, xmm5, 0xff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
xor edx, dword [esp + 0x2c]
movd dword [esp + 0x28], xmm0
pshufd xmm0, xmm6, 0x55
movd dword [esp + 8], xmm0
pshufd xmm0, xmm6, 0xee
rol eax, 8
rol edx, 7
add ebp, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
xor ebx, ebp
rol ebx, 7
add eax, ebx
xor ecx, eax
rol ecx, 0x10
add esi, ecx
xor ebx, esi
mov dword [esp + 0x6c], esi
mov esi, ebp
movd ebp, xmm0
pshufd xmm0, xmm6, 0xff
rol ebx, 0xc
add eax, ebx
mov dword [esp + 0x30], ebx
movd ebx, xmm5
movd xmm4, eax
xor eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
punpckldq xmm4, xmm3
add eax, edx
xor edi, eax
rol edi, 0x10
add esi, edi
xor edx, esi
mov dword [esp + 0x8c], esi
movd esi, xmm0
rol edx, 0xc
add eax, edx
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x90]
movd xmm5, eax
xor eax, edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
rol edx, 7
add edi, edx
xor ecx, edi
rol ecx, 0x10
add eax, ecx
xor edx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xf4]
rol edx, 0xc
add edi, edx
mov dword [esp + 0x90], edx
mov edx, dword [esp + 4]
movd xmm0, edi
xor edi, ecx
mov ecx, dword [esp + 0xa4]
xor eax, dword [esp + 0x88]
mov dword [esp + 0x3c], edi
mov edi, dword [esp]
punpckldq xmm0, xmm5
punpcklqdq xmm0, xmm4
xor edx, dword [esp + 0x40]
xor ecx, dword [esp + 0x50]
rol eax, 0x10
xor edi, dword [esp + 0x20]
add ebx, eax
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0xb4]
rol edx, 0x10
rol ecx, 0x10
mov dword [esp + 4], edx
mov dword [esp + 0xa4], ecx
mov ecx, eax
mov eax, dword [esp + 0xc]
rol edi, 0x10
mov dword [esp], edi
add ebx, edx
mov edx, dword [esp + 0x28]
add eax, dword [esp + 0xa4]
add edx, edi
mov edi, dword [esp + 8]
xor esi, edx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x88]
xor ebp, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
rol esi, 0xc
rol ebp, 0xc
add dword [esp + 0x20], esi
mov dword [esp + 0x10], ebp
mov ebp, dword [esp]
xor edi, ebx
rol edi, 0xc
xor eax, dword [esp + 0xc4]
mov dword [esp + 8], edi
xor ebp, dword [esp + 0x20]
rol eax, 0xc
add edx, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [esp], ebp
mov ebp, dword [esp + 0xc]
rol dword [esp], 8
xor ecx, edx
rol ecx, 8
add dword [esp + 0xc4], ecx
add eax, edi
mov edi, dword [esp + 0x50]
xor dword [esp + 4], eax
rol dword [esp + 4], 8
add ebx, dword [esp + 4]
add edi, dword [esp + 0x10]
xor dword [esp + 8], ebx
rol dword [esp + 8], 7
add edx, dword [esp + 8]
xor dword [esp + 0xa4], edi
rol dword [esp + 0xa4], 8
add ebp, dword [esp + 0xa4]
mov dword [esp + 0x88], edx
mov dword [esp + 0xc], ebp
mov ebp, dword [esp]
add dword [esp + 0x28], ebp
mov ebp, dword [esp + 0xc]
xor esi, dword [esp + 0x28]
xor dword [esp + 0x10], ebp
rol dword [esp + 0x10], 7
mov ebp, dword [esp + 0x24]
add eax, dword [esp + 0x10]
rol esi, 7
add edi, esi
xor dword [esp + 4], edi
rol dword [esp + 4], 0x10
xor ebp, dword [esp + 0xc4]
xor ecx, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp]
rol ecx, 0x10
mov dword [esp + 0xf4], ecx
add dword [esp + 0x28], ecx
rol ebp, 7
xor eax, edx
mov edx, dword [esp + 0xc]
add dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
rol eax, 0x10
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp], eax
add edx, eax
mov eax, dword [esp + 4]
xor dword [esp + 0xa4], ebp
rol dword [esp + 0xa4], 0x10
mov ebp, dword [esp + 8]
mov dword [esp + 0xc], edx
add ebx, dword [esp + 0xa4]
add dword [esp + 0xc4], eax
mov eax, dword [esp + 0x10]
xor ebp, edx
mov edx, dword [esp + 0x88]
xor ecx, ebx
mov dword [esp + 0xb4], ebx
mov ebx, esi
mov esi, dword [esp + 0x40]
rol ebp, 0xc
xor ebx, dword [esp + 0xc4]
rol ecx, 0xc
mov dword [esp + 8], ebp
xor eax, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
add edx, ebp
mov ebp, dword [esp + 0x4c]
movd xmm3, edx
rol ebx, 0xc
rol eax, 0xc
add edi, ebx
mov dword [esp + 0x114], ebx
mov ebx, edx
mov edx, dword [esp + 0x1c]
add esi, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
movd xmm2, edi
rol ebp, 8
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x5c]
xor ebx, dword [esp]
mov dword [esp + 0x40], esi
rol edx, 8
add eax, ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x1c], edx
rol edi, 8
rol ebx, 8
movd xmm1, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x88], ebx
punpckldq xmm2, xmm1
movd xmm1, esi
mov esi, dword [esp + 0x18]
punpckldq xmm3, xmm1
punpcklqdq xmm3, xmm2
movd xmm2, edx
mov edx, dword [esp + 0x34]
rol ecx, 8
rol eax, 8
mov dword [esp + 0x58], ecx
rol esi, 8
movd xmm1, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], esi
movd xmm4, esi
mov esi, dword [esp + 0x54]
punpckldq xmm1, xmm2
movd xmm2, ebp
add ebp, dword [esp + 0xd4]
punpckldq xmm4, xmm2
rol edx, 8
punpcklqdq xmm4, xmm1
mov dword [esp + 0x34], edx
rol eax, 8
movdqu xmmword [esp + 0x174], xmm4
movd xmm4, edx
mov edx, dword [esp + 0x60]
rol esi, 8
movd xmm2, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x4c], ebp
movd xmm1, esi
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x78]
punpckldq xmm1, xmm2
movd xmm2, ecx
mov ecx, dword [esp + 0x3c]
punpckldq xmm4, xmm2
rol edx, 8
punpcklqdq xmm4, xmm1
rol eax, 8
movd xmm1, edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x98]
movdqu xmmword [esp + 0x164], xmm4
movd xmm4, edi
mov dword [esp + 0x44], eax
rol ecx, 8
movd xmm2, ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x20]
punpckldq xmm1, xmm2
movd xmm2, eax
mov eax, dword [esp + 0x50]
punpckldq xmm4, xmm2
movd xmm2, ebx
mov ebx, dword [esp + 0x64]
punpcklqdq xmm4, xmm1
xor ecx, dword [esp + 0xa4]
movdqu xmmword [esp + 0x184], xmm4
xor eax, dword [esp + 4]
rol ecx, 8
movd xmm1, ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x40]
rol eax, 8
punpckldq xmm1, xmm2
mov dword [esp + 0x50], eax
movd xmm2, eax
mov eax, dword [esp + 0xb8]
xor ecx, dword [esp + 0xf4]
xor eax, ebp
mov ebp, dword [esp + 0x34]
rol eax, 7
rol ecx, 8
movd xmm4, ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x18]
add ebp, dword [esp + 0x9c]
punpckldq xmm4, xmm2
punpcklqdq xmm4, xmm1
movd xmm1, eax
mov eax, dword [esp + 0xbc]
movdqu xmmword [esp + 0x194], xmm4
add ecx, dword [esp + 0x68]
mov dword [esp + 0x34], ebp
xor edx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x38]
rol edx, 7
movd xmm4, edx
mov edx, dword [esp + 0x1c]
punpckldq xmm4, xmm1
add ecx, dword [esp + 0x48]
add edx, dword [esp + 0x7c]
xor eax, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x54]
rol eax, 7
movd xmm5, dword [esp + 0x38]
movd xmm2, eax
mov eax, dword [esp + 0x58]
xor esi, edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x94]
rol esi, 7
movd xmm1, esi
add ecx, dword [esp + 0xc0]
mov esi, dword [esp + 0x60]
punpckldq xmm2, xmm1
add eax, dword [esp + 0xa0]
punpcklqdq xmm2, xmm4
movdqu xmmword [esp + 0xd4], xmm2
xor ebx, ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x44]
add esi, dword [esp + 0x70]
rol ebx, 7
xor edx, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x74]
movd xmm2, ebx
mov ebx, dword [esp + 0xe4]
rol edx, 7
movd xmm1, edx
mov edx, dword [esp + 0x80]
add ecx, dword [esp + 0x6c]
mov dword [esp + 0x60], esi
xor eax, ebp
mov ebp, dword [esp + 0x3c]
rol eax, 7
movd xmm4, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
punpckldq xmm4, xmm1
movd xmm6, dword [esp + 0x44]
add ebp, dword [esp + 0x2c]
add eax, dword [esp + 0x84]
mov dword [esp + 0x3c], ebp
xor edx, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
rol edx, 7
movd xmm1, edx
mov edx, edi
mov edi, dword [esp + 0x114]
add edx, dword [esp + 0x8c]
punpckldq xmm2, xmm1
xor eax, ecx
punpcklqdq xmm2, xmm4
mov ecx, dword [esp + 0x88]
rol eax, 7
movdqu xmmword [esp + 0xa4], xmm2
movd xmm1, eax
mov eax, dword [esp + 0x90]
xor ebx, edx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x40]
rol ebx, 7
add ecx, dword [esp + 0xc]
movd xmm4, ebx
mov ebx, dword [esp + 0x10c]
xor eax, ebp
punpckldq xmm4, xmm1
rol eax, 7
add edx, dword [esp + 0x28]
movd xmm1, eax
mov eax, dword [esp + 0x50]
xor ebx, esi
rol ebx, 7
movd xmm2, ebx
mov ebx, dword [esp + 8]
add eax, dword [esp + 0xc4]
punpckldq xmm2, xmm1
punpcklqdq xmm2, xmm4
movdqu xmmword [esp + 0xf4], xmm2
xor ebx, ecx
xor edi, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
rol ebx, 7
rol edi, 7
movd xmm1, edi
mov edi, dword [esp + 0x20]
xor eax, edx
rol eax, 7
movd xmm4, eax
add edi, dword [esp + 0xb4]
mov eax, dword [esp + 0x24]
punpckldq xmm4, xmm1
movd xmm1, ebx
xor eax, edi
mov dword [esp + 0x20], edi
rol eax, 7
movd xmm2, eax
mov eax, dword [esp + 0x5c]
punpckldq xmm2, xmm1
movd xmm1, dword [esp + 0x18]
punpcklqdq xmm2, xmm4
movd xmm4, dword [esp + 0x1c]
movdqu xmmword [esp + 0xc4], xmm2
movd xmm2, dword [esp + 0x14]
punpckldq xmm4, xmm1
movd xmm1, dword [esp + 0x4c]
punpckldq xmm1, xmm5
movd xmm5, dword [esp + 0x58]
punpcklqdq xmm1, xmm4
movd xmm4, dword [esp + 0x34]
punpckldq xmm2, xmm4
movd xmm4, dword [esp + 0x54]
punpckldq xmm5, xmm4
movd xmm4, ebp
mov ebp, ecx
punpcklqdq xmm5, xmm2
movd xmm2, eax
punpckldq xmm4, xmm2
movd xmm2, esi
punpckldq xmm6, xmm2
movd xmm2, edx
punpcklqdq xmm6, xmm4
movd xmm4, ecx
mov ecx, dword [esp + 0x110]
movdqu xmmword [esp + 0xe4], xmm6
movd xmm6, dword [esp + 0x50]
punpckldq xmm4, xmm2
movd xmm2, edi
dec ecx
punpckldq xmm6, xmm2
movdqu xmm2, xmmword [esp + 0x1e4]
punpcklqdq xmm6, xmm4
movdqu xmmword [esp + 0x114], xmm6
movdqu xmm6, xmmword [esp + 0xa4]
jne 0x4e5102
mov esi, edx
mov edx, dword [esp + 0x104]
mov ebx, eax
movdqu xmmword [esp + 0x1f4], xmm2
movdqu xmmword [esp + 0x204], xmm7
movdqu xmmword [esp + 0x214], xmm0
movups xmm0, xmmword [esp + 0xd4]
movups xmm2, xmmword [esp + 0xf4]
movdqu xmmword [esp + 0x224], xmm3
mov edi, dword [edx + 0x20]
mov ecx, dword [edx + 0x24]
movups xmmword [esp + 0x234], xmm0
movdqu xmmword [esp + 0x244], xmm6
movups xmmword [esp + 0x254], xmm2
movups xmm2, xmmword [esp + 0xc4]
movups xmm0, xmmword [edx + 0x20]
mov eax, edi
movups xmmword [esp + 0x264], xmm2
movups xmm2, xmmword [esp + 0x174]
movups xmmword [esp + 0x1a4], xmm0
add eax, 1
mov dword [esp + 8], eax
mov eax, ecx
adc eax, 0
mov dword [esp + 0x40], eax
mov eax, edi
movups xmmword [esp + 0x274], xmm2
movups xmm2, xmmword [esp + 0x164]
add eax, 2
mov dword [esp + 4], eax
mov eax, ecx
adc eax, 0
mov dword [esp], eax
mov eax, edi
movups xmmword [esp + 0x284], xmm2
movups xmm2, xmmword [esp + 0x184]
add eax, 3
mov dword [esp + 0xc], eax
mov eax, ecx
adc eax, 0
add edi, 4
adc ecx, 0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
movups xmmword [esp + 0x294], xmm2
movups xmm2, xmmword [esp + 0x194]
movd xmm5, edi
movd xmm1, ecx
mov ecx, dword [esp + 0x18]
punpcklqdq xmm1, xmm5
shufps xmm1, xmm0, 0xe2
movups xmmword [esp + 0x2a4], xmm2
pshufd xmm2, xmm0, 0xee
pshufd xmm0, xmm0, 0xff
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x12c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x128], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x140], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x13c], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x134], ecx
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x150], ebx
xor ecx, ecx
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x15c], ebp
mov ebp, dword [esp + 0x108]
mov dword [esp + 0x160], esi
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x40]
movd dword [esp + 0x1c0], xmm0
movd dword [esp + 0x1bc], xmm2
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp]
movd dword [esp + 0x1d0], xmm0
movd dword [esp + 0x1cc], xmm2
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1d4], eax
mov eax, dword [edx]
movd dword [esp + 0x1e0], xmm0
movdqu xmm0, xmmword [edx]
movd dword [esp + 0x1dc], xmm2
movdqu xmm2, xmmword [edx + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x10]
movups xmmword [edx + 0x20], xmm1
pshufd xmm1, xmm0, 0x55
movd dword [esp + 0x14], xmm1
pshufd xmm1, xmm0, 0xee
pshufd xmm0, xmm0, 0xff
movd dword [esp + 0x38], xmm1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
movd dword [esp + 0x20], xmm0
pshufd xmm0, xmm2, 0x55
movd dword [esp + 0x34], xmm0
pshufd xmm0, xmm2, 0xee
movd dword [esp + 0xa4], xmm0
pshufd xmm0, xmm2, 0xff
movd dword [esp + 0x3c], xmm0
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1d8], eax
mov eax, 0x6b206574
mov edx, dword [esp + ecx + 0x1f4]
mov esi, 0x61707865
mov edi, 0x3320646e
mov ebx, 0x79622d32
add edx, esi
mov esi, dword [esp + ecx + 0x1f8]
add esi, edi
mov edi, dword [esp + ecx + 0x1fc]
movd xmm2, esi
mov esi, dword [esp + ecx + 0x238]
add edi, ebx
mov ebx, dword [esp + ecx + 0x200]
add esi, dword [esp + 0x14]
movd xmm1, edi
mov edi, dword [esp + ecx + 0x23c]
add ebx, eax
movd xmm0, ebx
mov ebx, dword [esp + ecx + 0x240]
movd xmm4, esi
mov esi, dword [esp + ecx + 0x130]
add edi, dword [esp + 0x38]
punpckldq xmm1, xmm0
movd xmm0, edx
mov edx, dword [esp + ecx + 0x234]
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
movdqu xmm1, xmmword [esp + ecx + 0x1a4]
add ebx, dword [esp + 0x20]
add esi, dword [esp + 0x3c]
movd xmm2, edi
mov edi, dword [esp + ecx + 0x12c]
movdqu xmmword [ebp + ecx*4], xmm0
add edx, dword [esp + 0x1c]
pshufd xmm6, xmm1, 0x55
movd xmm5, ebx
mov ebx, dword [esp + ecx + 0x128]
movd xmm7, esi
add edi, dword [esp + 0xa4]
movd xmm3, edx
movd edx, xmm6
pshufd xmm6, xmm1, 0xee
pshufd xmm1, xmm1, 0xff
punpckldq xmm2, xmm5
movd esi, xmm6
punpckldq xmm3, xmm4
add edx, dword [esp + ecx + 0x278]
add esi, dword [esp + ecx + 0x27c]
punpcklqdq xmm3, xmm2
add ebx, dword [esp + 0x34]
movd xmm6, edi
movd edi, xmm1
movdqu xmmword [ebp + ecx*4 + 0x10], xmm3
add edi, dword [esp + ecx + 0x280]
punpckldq xmm6, xmm7
movd xmm3, edx
movd xmm4, esi
mov esi, dword [esp + ecx + 0x1a4]
movd xmm1, ebx
mov ebx, dword [esp + ecx + 0x124]
movd xmm5, edi
punpckldq xmm4, xmm5
add esi, dword [esp + ecx + 0x274]
add ebx, dword [esp + 0x18]
movd xmm2, esi
movd xmm0, ebx
punpckldq xmm2, xmm3
punpckldq xmm0, xmm1
punpcklqdq xmm2, xmm4
punpcklqdq xmm0, xmm6
movdqu xmmword [ebp + ecx*4 + 0x20], xmm0
movdqu xmmword [ebp + ecx*4 + 0x30], xmm2
add ecx, 0x10
cmp ecx, 0x40
jne 0x4e6323
add esp, 0x2b4
pop esi
pop edi
pop ebx
pop ebp
ret