Function at 0x421c6f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x3b0
mov dword [esp + 0x7c], edx
mov eax, ecx
lea edi, [esp + 0x128]
mov ecx, edi
mov edx, 0x10
push eax
call fcn.0041fe24
add esp, 4
mov eax, 0xfffffe00
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 8], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x60], ecx
mov esi, dword [esp + eax + 0x39c]
mov edi, dword [esp + eax + 0x398]
mov ecx, edi
shld ecx, esi, 0xd
mov ebx, esi
shld ebx, edi, 0xd
mov edx, esi
shld edx, edi, 3
xor edx, ecx
mov ecx, esi
shld ecx, edi, 0x1a
shld edi, esi, 3
xor edi, ebx
xor edi, ecx
shr esi, 6
xor esi, edx
add edi, dword [esp + eax + 0x370]
adc esi, dword [esp + eax + 0x374]
mov ecx, dword [esp + eax + 0x330]
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + eax + 0x334]
mov eax, ecx
shld eax, ebx, 0x1f
mov dword [esp + 0x24], eax
mov eax, ebx
shld eax, ecx, 0x1f
mov dword [esp + 0x18], eax
mov eax, ebx
shld ecx, ebx, 0x18
mov dword [esp + 4], ecx
mov ecx, eax
mov ebx, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
shld ecx, edx, 0x18
mov edx, dword [esp + 0x24]
xor dword [esp + 4], edx
mov edx, ebx
mov ebx, dword [esp + 0x10]
shld edx, ebx, 0x19
xor ecx, dword [esp + 0x18]
xor edx, ecx
mov ebx, dword [esp + 0x14]
mov ecx, ebx
shr ecx, 7
xor ecx, dword [esp + 4]
add edi, dword [esp + 0x60]
adc esi, dword [esp + 0x50]
add edi, edx
adc esi, ecx
mov dword [esp + eax + 0x3a8], edi
mov dword [esp + eax + 0x3ac], esi
add eax, 8
mov ecx, dword [esp + 0x10]
mov edx, ebx
jne 0x421ca5
mov eax, dword [esp + 0x7c]
movdqu xmm7, xmmword [eax]
movdqu xmm6, xmmword [eax + 0x10]
movdqu xmm5, xmmword [eax + 0x20]
movdqu xmm4, xmmword [eax + 0x30]
pshufd xmm0, xmm7, 0xff
movd eax, xmm0
pshufd xmm0, xmm7, 0xee
movd ecx, xmm0
pshufd xmm0, xmm6, 0x55
movd dword [esp + 0x90], xmm0
pshufd xmm0, xmm6, 0xff
movd dword [esp + 0x24], xmm0
pshufd xmm0, xmm6, 0xee
movd dword [esp + 0x18], xmm0
pshufd xmm0, xmm5, 0x55
pshufd xmm1, xmm4, 0x55
pshufd xmm2, xmm4, 0xff
pshufd xmm3, xmm4, 0xee
movd edi, xmm0
movdqa xmm0, xmm5
movdqa xmmword [esp + 0xd0], xmm7
movsd xmm0, xmm7
movd dword [esp + 8], xmm1
movd dword [esp + 0xc], xmm2
movd dword [esp + 0x14], xmm3
movdqa xmmword [esp + 0xe0], xmm6
movd dword [esp + 0x2c], xmm6
movapd xmm6, xmm0
movdqa xmmword [esp + 0xf0], xmm5
movd edx, xmm5
movdqa xmmword [esp + 0x100], xmm4
movd dword [esp + 4], xmm4
mov dword [esp + 0x10], 0xfffffff8
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
mov ecx, edx
mov dword [esp + 0x50], edi
shld edx, edi, 0x12
mov eax, ecx
shld eax, edi, 0xe
xor eax, edx
mov esi, edi
shld esi, ecx, 0x12
mov edx, edi
shld edx, ecx, 0xe
xor edx, esi
mov esi, ecx
mov ebx, ecx
shld esi, edi, 0x17
xor esi, edx
mov ecx, edi
mov dword [esp + 0x60], ebx
shld ecx, ebx, 0x17
xor ecx, eax
pshufd xmm0, xmm6, 0xee
pshufd xmm1, xmm6, 0xff
movd edx, xmm1
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 8]
xor edx, ebx
movd eax, xmm0
mov dword [esp + 0x8c], eax
mov edi, dword [esp + 4]
xor eax, edi
and eax, dword [esp + 0x60]
and edx, dword [esp + 0x50]
xor edx, ebx
xor eax, edi
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0xc]
add eax, esi
adc edx, ecx
mov ecx, dword [esp + 0x10]
add eax, dword [ecx*8 + 0x42db70]
adc edx, dword [ecx*8 + 0x42db74]
add eax, dword [esp + ecx*8 + 0x168]
mov dword [esp + 0x80], eax
adc edx, dword [esp + ecx*8 + 0x16c]
mov dword [esp + 0x84], edx
pshufd xmm0, xmm6, 0x55
movd edi, xmm6
movd esi, xmm0
mov ecx, edi
shld ecx, esi, 4
mov eax, esi
shld eax, edi, 0x1e
xor eax, ecx
mov ecx, esi
shld ecx, edi, 4
mov edx, edi
shld edx, esi, 0x1e
xor edx, ecx
mov ebx, edi
mov ecx, edi
mov dword [esp + 0x30], edi
mov edi, esi
mov dword [esp + 0xc], esi
shld ebx, esi, 0x19
xor ebx, edx
shld edi, ecx, 0x19
xor edi, eax
mov ecx, dword [esp + 0x20]
mov eax, ecx
mov edx, dword [esp + 0x2c]
and eax, edx
or ecx, edx
and ecx, dword [esp + 0x30]
or ecx, eax
mov edx, dword [esp + 0x1c]
mov esi, edx
mov eax, dword [esp + 0x90]
and esi, eax
or edx, eax
and edx, dword [esp + 0xc]
or edx, esi
add ecx, ebx
mov dword [esp + 0x14], ecx
adc edx, edi
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x60]
xor eax, dword [esp + 0x8c]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0x88]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 4]
add edx, dword [eax*8 + 0x42db78]
mov ecx, dword [esp + 8]
adc ecx, dword [eax*8 + 0x42db7c]
add edx, dword [esp + eax*8 + 0x170]
mov dword [esp + 4], edx
adc ecx, dword [esp + eax*8 + 0x174]
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x30]
mov ecx, edi
mov esi, dword [esp + 0x20]
and ecx, esi
mov dword [esp + 0xac], ecx
mov edx, dword [esp + 0xc]
mov ecx, edx
mov ebx, dword [esp + 0x1c]
and ecx, ebx
mov dword [esp + 0xa8], ecx
or edi, esi
mov dword [esp + 0x30], edi
or edx, ebx
mov dword [esp + 0xc], edx
mov ecx, dword [eax*8 + 0x42db88]
add ecx, dword [esp + 0x60]
mov edx, dword [eax*8 + 0x42db8c]
adc edx, dword [esp + 0x50]
add ecx, dword [esp + eax*8 + 0x180]
mov dword [esp + 0xb4], ecx
adc edx, dword [esp + eax*8 + 0x184]
mov dword [esp + 0xb0], edx
mov ecx, dword [esp + eax*8 + 0x198]
add ecx, dword [eax*8 + 0x42dba0]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + eax*8 + 0x19c]
adc ecx, dword [eax*8 + 0x42dba4]
mov dword [esp + 0xb8], ecx
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x80]
mov edx, dword [esp + 0x24]
adc edx, dword [esp + 0x84]
mov ecx, eax
shld ecx, edx, 0x12
mov esi, eax
shld esi, edx, 0xe
mov edi, edx
shld edi, eax, 0x12
xor esi, ecx
mov ecx, edx
shld ecx, eax, 0xe
xor ecx, edi
mov edi, eax
shld edi, edx, 0x17
xor edi, ecx
mov ecx, edx
shld ecx, eax, 0x17
xor ecx, esi
mov dword [esp + 0x24], edx
mov esi, dword [esp + 0x28]
and esi, edx
xor esi, dword [esp + 0x88]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0xc0]
and ebx, eax
xor ebx, dword [esp + 0x8c]
add ebx, dword [esp + 4]
adc esi, dword [esp + 8]
add ebx, edi
mov dword [esp + 0xc0], ebx
adc esi, ecx
mov dword [esp + 0x28], esi
xor edx, dword [esp + 0x50]
mov dword [esp + 4], edx
xor eax, dword [esp + 0x60]
mov dword [esp + 8], eax
mov esi, dword [esp + 0x14]
add esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x4c]
adc ebx, dword [esp + 0x84]
mov eax, esi
shld eax, ebx, 4
mov edx, ebx
shld edx, esi, 0x1e
xor edx, eax
mov eax, ebx
shld eax, esi, 4
mov ecx, esi
shld ecx, ebx, 0x1e
xor ecx, eax
mov eax, esi
shld eax, ebx, 0x19
xor eax, ecx
mov ecx, ebx
shld ecx, esi, 0x19
xor ecx, edx
mov edx, dword [esp + 0xc]
and edx, ebx
mov dword [esp + 0x4c], ebx
or edx, dword [esp + 0xa8]
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x30]
and edi, esi
or edi, dword [esp + 0xac]
add edi, eax
mov eax, edi
movd xmm1, dword [esp + 0x28]
movd xmm3, dword [esp + 0xc0]
adc edx, ecx
movd xmm5, edx
movd xmm2, edi
mov eax, dword [esp + 0x10]
movss xmm0, dword [eax*8 + 0x42db80]
movapd xmm4, xmm6
movaps xmmword [esp + 0x110], xmm6
movd xmm6, ebx
movss xmm7, dword [eax*8 + 0x42db84]
movlhps xmm7, xmm0
movd xmm0, esi
punpckldq xmm0, xmm6
movdqa xmmword [esp + 0x30], xmm0
movd xmm6, dword [esp + 0x2c]
punpckldq xmm3, xmm1
movdqa xmm1, xmm0
shufps xmm1, xmm7, 0x24
movd xmm7, dword [esp + 0x90]
punpckldq xmm6, xmm7
movss xmm7, dword [esp + 0x60]
punpckldq xmm2, xmm5
movss xmm5, dword [esp + 0x50]
pshufd xmm0, xmm3, 0x44
punpcklqdq xmm2, xmm6
paddq xmm2, xmm0
movlhps xmm5, xmm7
movapd xmm6, xmm4
shufps xmm6, xmm5, 0x24
movdqa xmm0, xmm2
psrlq xmm0, 0x1c
movdqa xmm5, xmm2
psrlq xmm5, 0xe
movsd xmm5, xmm0
movdqa xmm0, xmm2
psllq xmm0, 0x24
movdqa xmm7, xmm2
psllq xmm7, 0x32
movsd xmm7, xmm0
movdqa xmm0, xmm2
psrlq xmm0, 0x22
movdqa xmm3, xmm2
psrlq xmm3, 0x12
movsd xmm3, xmm0
movdqa xmm4, xmm2
psllq xmm4, 0x1e
movdqa xmm0, xmm2
psllq xmm0, 0x2e
movsd xmm0, xmm4
orpd xmm7, xmm5
orpd xmm0, xmm3
movdqa xmm3, xmm2
psrlq xmm3, 0x27
xorpd xmm0, xmm7
movdqa xmm4, xmm2
psrlq xmm4, 0x29
movsd xmm4, xmm3
pshufd xmm3, xmm2, 0xee
movd edx, xmm3
mov dword [esp + 0x50], edx
pshufd xmm3, xmm2, 0xff
mov ecx, dword [esp + 8]
and ecx, edx
movd edx, xmm3
mov dword [esp + 0x60], edx
movd xmm3, ecx
mov ecx, dword [esp + 4]
and ecx, edx
movd xmm5, ecx
punpcklqdq xmm5, xmm3
movdqa xmm3, xmm2
psllq xmm3, 0x19
movdqa xmm7, xmm2
movdqa xmmword [esp + 0xc0], xmm2
psllq xmm7, 0x17
movsd xmm7, xmm3
orpd xmm7, xmm4
movss xmm3, dword [esp + eax*8 + 0x178]
movss xmm4, dword [esp + eax*8 + 0x17c]
movlhps xmm4, xmm3
movdqa xmm3, xmm2
shufps xmm3, xmm4, 0x24
xorpd xmm7, xmm0
movdqa xmm4, xmmword [esp + 0x110]
paddq xmm1, xmm4
paddq xmm3, xmm1
movaps xmm0, xmmword [esp + 0x30]
movaps xmm1, xmm0
shufps xmm1, xmm5, 0x24
movaps xmm2, xmm0
orps xmm2, xmm4
andps xmm0, xmm4
xorps xmm6, xmm1
paddq xmm3, xmm6
movaps xmm6, xmmword [esp + 0xc0]
andps xmm2, xmm6
orps xmm2, xmm0
shufps xmm2, xmm3, 0xe4
paddq xmm2, xmm7
pshufd xmm0, xmm2, 0xee
movd esi, xmm0
add esi, dword [esp + 0x20]
mov dword [esp + 4], esi
pshufd xmm1, xmm2, 0xff
movd edi, xmm1
adc edi, dword [esp + 0x1c]
mov eax, esi
shld eax, edi, 0x12
mov ecx, esi
shld ecx, edi, 0xe
xor ecx, eax
mov eax, edi
shld eax, esi, 0x12
mov edx, edi
shld edx, esi, 0xe
xor edx, eax
mov ebx, edi
shld ebx, esi, 0x17
xor ebx, ecx
mov ecx, esi
mov dword [esp + 8], edi
shld ecx, edi, 0x17
xor ecx, edx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x18]
xor eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x24]
xor eax, esi
and eax, edi
mov dword [esp + 0xc], eax
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x30]
and eax, edi
xor eax, edx
mov edx, dword [esp + 0xc]
xor edx, esi
add eax, dword [esp + 0xb4]
adc edx, dword [esp + 0xb0]
add eax, ecx
mov dword [esp + 0x30], eax
adc edx, ebx
mov dword [esp + 0xc], edx
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x60]
xor edi, ecx
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x50]
xor ebx, edx
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x10]
add edx, dword [eax*8 + 0x42db98]
adc ecx, dword [eax*8 + 0x42db9c]
add edx, dword [esp + eax*8 + 0x190]
mov dword [esp + 0x50], edx
adc ecx, dword [esp + eax*8 + 0x194]
mov dword [esp + 0x60], ecx
paddq xmm2, xmm0
movdqa xmmword [esp + 0x90], xmm2
pshufd xmm0, xmm2, 0x55
movd edx, xmm2
movd edi, xmm0
mov eax, edi
shld eax, edx, 4
mov ecx, edx
shld ecx, edi, 0x1e
xor ecx, eax
mov eax, edx
shld eax, edi, 0x19
xor eax, ecx
mov dword [esp + 0x1c], eax
mov eax, edi
shld eax, edx, 0x1e
mov esi, eax
movd eax, xmm6
mov ebx, eax
mov ecx, dword [esp + 0x14]
and ebx, ecx
or eax, ecx
and eax, edx
or eax, ebx
mov ebx, edi
shld ebx, edx, 0x19
shld edx, edi, 4
xor esi, edx
mov dword [esp + 0x28], esi
pshufd xmm0, xmm6, 0x55
movd edx, xmm0
mov ecx, edx
mov esi, dword [esp + 0x4c]
or edx, esi
and edx, edi
and ecx, esi
or edx, ecx
xor ebx, dword [esp + 0x28]
add eax, dword [esp + 0x1c]
movd xmm0, dword [esp + 0xc]
adc edx, ebx
movd xmm1, dword [esp + 0x30]
movd xmm2, edx
movd xmm5, eax
punpckldq xmm1, xmm0
pshufd xmm0, xmm1, 0x44
punpckldq xmm5, xmm2
punpcklqdq xmm5, xmm4
paddq xmm5, xmm0
movdqa xmmword [esp + 0x30], xmm5
movdqa xmm2, xmm5
psrlq xmm2, 0x1c
movdqa xmm1, xmm5
psrlq xmm1, 0xe
movdqa xmm3, xmm5
psllq xmm3, 0x24
movdqa xmm0, xmm5
movsd xmm1, xmm2
psllq xmm0, 0x32
movdqa xmm2, xmm5
psrlq xmm2, 0x22
movsd xmm0, xmm3
movdqa xmm7, xmm5
psrlq xmm7, 0x12
movdqa xmm3, xmm5
movsd xmm7, xmm2
psllq xmm3, 0x1e
movdqa xmm4, xmm5
psllq xmm4, 0x2e
orpd xmm0, xmm1
movsd xmm4, xmm3
movdqa xmm1, xmm5
movdqa xmm2, xmm5
psrlq xmm1, 0x27
psrlq xmm2, 0x29
movsd xmm2, xmm1
movdqa xmm3, xmm5
psllq xmm3, 0x19
movdqa xmm1, xmm5
psllq xmm1, 0x17
movsd xmm1, xmm3
orpd xmm4, xmm7
mov eax, dword [esp + 0x10]
movss xmm3, dword [eax*8 + 0x42db90]
movss xmm7, dword [eax*8 + 0x42db94]
mov ebx, eax
movlhps xmm7, xmm3
orpd xmm1, xmm2
movaps xmm5, xmm6
movaps xmm2, xmm6
shufps xmm2, xmm7, 0x24
movss xmm3, dword [esp + 0x18]
movss xmm7, dword [esp + 0x24]
movlhps xmm7, xmm3
movaps xmm6, xmmword [esp + 0x90]
movaps xmm3, xmm6
shufps xmm3, xmm7, 0x24
xorpd xmm4, xmm0
movdqa xmm7, xmmword [esp + 0x30]
pshufd xmm0, xmm7, 0xee
movd eax, xmm0
pshufd xmm0, xmm7, 0xff
mov edx, dword [esp + 0x20]
and edx, eax
mov ecx, eax
mov dword [esp + 0x1c], eax
movd eax, xmm0
movd xmm0, edx
mov edx, dword [esp + 0x2c]
and edx, eax
mov edi, eax
mov dword [esp + 0x20], eax
xorpd xmm1, xmm4
movd xmm4, edx
paddq xmm3, xmm2
movss xmm2, dword [esp + ebx*8 + 0x188]
punpcklqdq xmm4, xmm0
movss xmm0, dword [esp + ebx*8 + 0x18c]
movlhps xmm0, xmm2
movaps xmm2, xmm5
shufps xmm2, xmm4, 0x24
movdqa xmm4, xmm7
shufps xmm4, xmm0, 0x24
movaps xmm0, xmm6
andps xmm0, xmm5
paddq xmm4, xmm3
movaps xmm7, xmm5
orps xmm7, xmm6
xorps xmm2, xmm5
paddq xmm4, xmm2
movaps xmm6, xmmword [esp + 0x30]
andps xmm7, xmm6
orps xmm7, xmm0
shufps xmm7, xmm4, 0xe4
paddq xmm7, xmm1
xor ecx, dword [esp + 4]
mov dword [esp + 0x18], ecx
xor edi, dword [esp + 8]
pshufd xmm0, xmm7, 0xee
movd edx, xmm0
add edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
pshufd xmm0, xmm7, 0xff
movd ecx, xmm0
adc ecx, esi
mov ebx, edx
shld ebx, ecx, 0x12
shld edx, ecx, 0xe
mov esi, ecx
mov eax, ecx
mov ecx, dword [esp + 0x14]
shld esi, ecx, 0x12
xor edx, ebx
mov ebx, eax
mov dword [esp + 0xc], eax
shld eax, ecx, 0xe
xor eax, esi
mov esi, ecx
shld esi, ebx, 0x17
xor esi, eax
mov eax, ebx
shld eax, ecx, 0x17
xor eax, edx
and edi, ebx
mov edx, dword [esp + 0x18]
and edx, ecx
xor edi, dword [esp + 8]
xor edx, dword [esp + 4]
add edx, dword [esp + 0x50]
adc edi, dword [esp + 0x60]
add edx, esi
mov ecx, edx
adc edi, eax
movd xmm1, edi
mov eax, dword [esp + 0x10]
movss xmm0, dword [esp + eax*8 + 0x1a0]
movss xmm2, dword [esp + eax*8 + 0x1a4]
movss xmm3, dword [eax*8 + 0x42dba8]
movlhps xmm2, xmm0
movss xmm0, dword [eax*8 + 0x42dbac]
movlhps xmm0, xmm3
movdqa xmm3, xmm7
shufps xmm3, xmm2, 0x24
shufps xmm7, xmm0, 0x2e
paddq xmm7, xmm3
pshufd xmm0, xmm7, 0x55
movd edi, xmm7
movd esi, xmm0
mov eax, edi
shld eax, esi, 4
movd xmm4, edx
mov ecx, esi
shld ecx, edi, 0x1e
xor ecx, eax
mov eax, esi
shld eax, edi, 4
mov edx, edi
shld edx, esi, 0x1e
xor edx, eax
mov eax, edi
shld eax, esi, 0x19
xor eax, edx
mov dword [esp + 0x24], esi
mov edx, esi
mov dword [esp + 0x18], edi
shld edx, edi, 0x19
xor edx, ecx
movaps xmm2, xmm6
movaps xmm0, xmm6
movaps xmm3, xmmword [esp + 0x90]
andps xmm0, xmm3
orps xmm2, xmm3
mov esi, dword [esp + 0x20]
xor esi, dword [esp + 0xc]
andps xmm2, xmm7
orps xmm2, xmm0
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
xor ebx, edi
movd ecx, xmm2
add ecx, eax
pshufd xmm0, xmm2, 0x55
movd eax, xmm0
adc eax, edx
movd xmm0, ecx
movd xmm3, eax
punpckldq xmm4, xmm1
movdqa xmmword [esp + 0x60], xmm4
pshufd xmm1, xmm4, 0x44
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm5
paddq xmm1, xmm0
movdqa xmm2, xmm1
movdqa xmm3, xmm1
psrlq xmm2, 0x1c
psrlq xmm3, 0xe
movsd xmm3, xmm2
movdqa xmm2, xmm1
psllq xmm2, 0x24
movdqa xmm5, xmm1
psllq xmm5, 0x32
movsd xmm5, xmm2
orpd xmm5, xmm3
movdqa xmm2, xmm1
psrlq xmm2, 0x22
movdqa xmm4, xmm1
psrlq xmm4, 0x12
movsd xmm4, xmm2
movdqa xmm2, xmm1
psllq xmm2, 0x1e
movdqa xmm3, xmm1
psllq xmm3, 0x2e
movsd xmm3, xmm2
orpd xmm3, xmm4
xorpd xmm3, xmm5
movdqa xmm4, xmm1
psrlq xmm4, 0x27
movdqa xmm2, xmm1
psrlq xmm2, 0x29
movsd xmm2, xmm4
movdqa xmm4, xmm1
psllq xmm4, 0x19
movdqa xmm6, xmm1
psllq xmm6, 0x17
movsd xmm6, xmm4
orpd xmm6, xmm2
xorpd xmm6, xmm3
pshufd xmm2, xmm1, 0xee
movd eax, xmm2
pshufd xmm2, xmm1, 0xff
movdqa xmmword [esp + 0x50], xmm1
movd ecx, xmm2
movss xmm2, dword [esp + 8]
movss xmm3, dword [esp + 4]
movlhps xmm2, xmm3
and esi, ecx
mov edx, ebx
and edx, eax
movd xmm3, edx
movd xmm4, esi
punpcklqdq xmm4, xmm3
movdqa xmm3, xmm1
shufps xmm3, xmm2, 0x24
movaps xmm2, xmm7
shufps xmm2, xmm4, 0x24
movd xmm4, dword [esp + 0xbc]
movd xmm5, dword [esp + 0xb8]
punpckldq xmm4, xmm5
pshufd xmm4, xmm4, 0x44
paddq xmm4, xmm3
movaps xmm5, xmmword [esp + 0x30]
xorps xmm2, xmm5
paddq xmm4, xmm2
movaps xmm2, xmm7
andps xmm2, xmm5
movaps xmm3, xmm7
orps xmm3, xmm5
andps xmm3, xmm1
orps xmm3, xmm2
shufps xmm3, xmm4, 0xe4
paddq xmm3, xmm6
mov dword [esp + 4], eax
xor eax, edi
movd xmm1, eax
mov dword [esp + 8], ecx
mov eax, ecx
mov ecx, dword [esp + 0xc]
xor eax, ecx
paddq xmm0, xmmword [esp + 0x60]
pshufd xmm4, xmm3, 0xee
punpcklqdq xmm3, xmmword [esp + 0x90]
movd xmm5, eax
punpcklqdq xmm5, xmm1
movdqa xmm2, xmm0
shufps xmm2, xmm5, 0x24
paddq xmm3, xmm4
movdqa xmm1, xmm3
psrlq xmm1, 0x1c
movdqa xmm5, xmm3
psrlq xmm5, 0xe
movsd xmm5, xmm1
movdqa xmm4, xmm3
psllq xmm4, 0x24
movdqa xmm1, xmm3
psllq xmm1, 0x32
movsd xmm1, xmm4
movdqa xmm4, xmm3
psrlq xmm4, 0x22
movdqa xmm6, xmm3
psrlq xmm6, 0x12
movsd xmm6, xmm4
orpd xmm1, xmm5
movdqa xmm4, xmm3
psllq xmm4, 0x1e
movdqa xmm5, xmm3
psllq xmm5, 0x2e
movsd xmm5, xmm4
orpd xmm5, xmm6
movdqa xmm4, xmm3
psrlq xmm4, 0x27
movdqa xmm6, xmm3
psrlq xmm6, 0x29
movsd xmm6, xmm4
xorpd xmm5, xmm1
movdqa xmm4, xmm3
psllq xmm4, 0x19
movdqa xmm1, xmm3
psllq xmm1, 0x17
movsd xmm1, xmm4
orpd xmm1, xmm6
xorpd xmm1, xmm5
mov eax, ecx
movd xmm5, ecx
movd xmm4, edi
punpcklqdq xmm5, xmm4
andps xmm2, xmm3
movaps xmm4, xmm3
shufps xmm4, xmm5, 0x24
xorps xmm4, xmm2
movdqa xmm6, xmmword [esp + 0x30]
movdqa xmm2, xmm6
paddq xmm2, xmm7
paddq xmm4, xmm2
movdqa xmm2, xmm0
por xmm0, xmm7
pand xmm2, xmm7
pand xmm0, xmm3
por xmm0, xmm2
shufps xmm0, xmm4, 0xe4
movdqa xmm4, xmmword [esp + 0x50]
pshufd xmm2, xmm4, 0x55
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddq xmm6, xmm1
paddq xmm0, xmm1
pshufd xmm1, xmm6, 0x55
movd dword [esp + 0x90], xmm2
movdqa xmm2, xmm6
movaps xmm6, xmm3
movd edi, xmm1
pshufd xmm1, xmm3, 0x55
mov eax, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x10], eax
cmp eax, 0x48
movsd xmm6, xmm0
movd eax, xmm1
movd dword [esp + 0x2c], xmm4
movd ecx, xmm3
movd edx, xmm2
jb 0x421e45
movdqa xmm1, xmm4
unpcklpd xmm0, xmm3
paddq xmm0, xmmword [esp + 0xd0]
mov eax, dword [esp + 0x7c]
movdqu xmmword [eax], xmm0
movdqa xmm0, xmm4
punpcklqdq xmm0, xmm7
paddq xmm0, xmmword [esp + 0xe0]
movdqu xmmword [eax + 0x10], xmm0
shufpd xmm2, xmm3, 2
paddq xmm2, xmmword [esp + 0xf0]
movdqu xmmword [eax + 0x20], xmm2
shufps xmm1, xmm5, 0x2e
paddq xmm1, xmmword [esp + 0x100]
movdqu xmmword [eax + 0x30], xmm1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret