Function at 0x43ffb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x340
mov edi, edx
mov ebx, ecx
lea eax, [esp + 0xb8]
push 0x280
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0xa0], eax
movdqu xmm7, xmmword [ebx + 0x30]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0xc], eax
mov edx, dword [ebx + 0x2c]
mov esi, dword [ebx + 0x28]
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x14], eax
mov dword [esp + 0x88], ebx
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x60], eax
xor ebx, ebx
nop word [eax + eax]
mov eax, dword [edi + ebx*8]
mov ecx, dword [edi + ebx*8 + 4]
bswap ecx
bswap eax
mov dword [esp + ebx*8 + 0xbc], eax
mov dword [esp + ebx*8 + 0xb8], ecx
inc ebx
cmp ebx, 0x10
jne 0x440040
movd xmm1, esi
movd xmm2, edx
mov ecx, dword [esp + 0xb8]
movd xmm0, dword [esp + 0x10]
mov edx, dword [esp + 0xbc]
punpckldq xmm1, xmm2
movd xmm2, dword [esp + 0xc]
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
mov eax, 0x10
nop word cs:[eax + eax]
mov dword [esp + 0x50], edx
mov dword [esp + 0x40], ecx
mov edi, dword [esp + eax*8 + 0xac]
mov ebx, dword [esp + eax*8 + 0xa8]
mov ecx, ebx
shld ecx, edi, 0xd
mov esi, edi
shld esi, ebx, 0xd
mov edx, edi
shld edx, ebx, 3
xor edx, ecx
mov ecx, edi
shld ecx, ebx, 0x1a
shld ebx, edi, 3
xor ebx, esi
xor ebx, ecx
shr edi, 6
xor edi, edx
add ebx, dword [esp + eax*8 + 0x80]
adc edi, dword [esp + eax*8 + 0x84]
mov ecx, dword [esp + eax*8 + 0x40]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + eax*8 + 0x44]
mov esi, ecx
shld esi, edx, 0x1f
mov dword [esp + 0x30], esi
mov esi, edx
shld esi, ecx, 0x1f
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], edx
shld ecx, edx, 0x18
xor ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov ecx, edx
mov edx, dword [esp + 0xc]
shld ecx, edx, 0x18
xor ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
shld esi, edx, 0x19
xor esi, ecx
mov edx, dword [esp + 0x10]
mov ecx, edx
shr ecx, 7
xor ecx, dword [esp + 0x30]
add ebx, dword [esp + 0x40]
adc edi, dword [esp + 0x50]
add ebx, esi
adc edi, ecx
mov dword [esp + eax*8 + 0xb8], ebx
mov dword [esp + eax*8 + 0xbc], edi
inc eax
mov ecx, dword [esp + 0xc]
cmp eax, 0x50
jne 0x4400a0
mov ecx, 0xfffffff8
mov eax, dword [esp + 0x1c]
nop word cs:[eax + eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], eax
pshufd xmm1, xmm0, 0xff
pshufd xmm2, xmm0, 0xee
movdqa xmm3, xmm0
psrlq xmm3, 0x12
movdqa xmm4, xmm2
psrlq xmm4, 0xe
shufps xmm4, xmm3, 0xe4
movdqa xmm3, xmm0
psllq xmm3, 0x2e
movd esi, xmm2
psllq xmm2, 0x32
shufps xmm2, xmm3, 0xe4
orps xmm2, xmm4
pshufd xmm3, xmm2, 0xee
pxor xmm3, xmm2
movd edi, xmm1
mov dword [esp + 0x10], edi
mov eax, esi
shld eax, edi, 0x17
movd ecx, xmm3
xor eax, ecx
pshufd xmm1, xmm3, 0x55
shld edi, esi, 0x17
mov dword [esp + 0x40], esi
movd ecx, xmm1
xor edi, ecx
add eax, dword [esp + 0x60]
adc edi, dword [esp + 0x14]
mov dword [esp + 0x14], edi
pshufd xmm1, xmm7, 0x55
pshufd xmm2, xmm7, 0xee
pshufd xmm3, xmm7, 0xff
movd ecx, xmm1
mov dword [esp + 0x60], ecx
movd edi, xmm3
mov dword [esp + 0x9c], edi
xor ecx, edi
movd edx, xmm7
mov dword [esp + 0x30], edx
movd ebx, xmm2
mov dword [esp + 0x98], ebx
xor edx, ebx
and edx, esi
and ecx, dword [esp + 0x10]
xor ecx, edi
xor edx, ebx
mov esi, dword [esp + 0xc]
add eax, dword [esi*8 + 0x4a4330]
mov edi, dword [esp + 0x14]
adc edi, dword [esi*8 + 0x4a4334]
add eax, dword [esp + esi*8 + 0xf8]
adc edi, dword [esp + esi*8 + 0xfc]
add eax, edx
mov dword [esp + 0x90], eax
adc edi, ecx
mov dword [esp + 0x14], edi
pshufd xmm1, xmm0, 0x55
pshufd xmm2, xmm0, 0x44
movdqa xmm3, xmm0
psrlq xmm3, 0x1c
movdqa xmm4, xmm2
psrlq xmm4, 0x22
movsd xmm4, xmm3
movdqa xmm3, xmm0
psllq xmm3, 0x24
psllq xmm2, 0x1e
movsd xmm2, xmm3
orpd xmm2, xmm4
pshufd xmm3, xmm2, 0xee
pxor xmm3, xmm2
movd esi, xmm0
movd edx, xmm1
mov eax, esi
shld eax, edx, 0x19
movd ecx, xmm3
xor eax, ecx
mov dword [esp + 0x8c], eax
pshufd xmm1, xmm3, 0x55
mov edi, edx
shld edi, esi, 0x19
movd ebx, xmm1
xor edi, ebx
mov eax, dword [esp + 0x20]
mov ebx, eax
or ebx, esi
and ebx, dword [esp + 0x70]
and esi, eax
or esi, ebx
mov eax, dword [esp + 0x18]
mov ebx, eax
or ebx, edx
and ebx, dword [esp + 0x28]
and edx, eax
or edx, ebx
mov dword [esp + 0x94], edx
movd xmm1, esi
mov edx, dword [esp + 0x60]
mov eax, edx
xor eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x30]
mov ebx, ecx
mov eax, dword [esp + 0x40]
xor ebx, eax
mov esi, dword [esp + 0xc]
mov esi, dword [esi*8 + 0x4a4340]
add esi, ecx
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xc]
mov esi, dword [esi*8 + 0x4a4344]
adc esi, edx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0xc]
add eax, dword [esi*8 + 0x4a4348]
movd xmm3, dword [esp + 0x8c]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
adc esi, dword [edx*8 + 0x4a434c]
movd xmm2, edi
movd xmm4, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
add eax, dword [esp + ecx*8 + 0x110]
mov dword [esp + 0x40], eax
movd xmm5, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc]
adc esi, dword [esp + ecx*8 + 0x114]
mov dword [esp + 0x10], esi
movd xmm6, dword [esp + 0x14]
movd xmm7, dword [esp + 0x90]
punpckldq xmm3, xmm2
punpckldq xmm4, xmm5
punpcklqdq xmm3, xmm4
punpckldq xmm7, xmm6
pshufd xmm2, xmm7, 0x44
paddq xmm2, xmm3
pshufd xmm3, xmm2, 0xff
pshufd xmm4, xmm2, 0xee
movdqa xmm5, xmm2
psrlq xmm5, 0x12
movdqa xmm6, xmm4
psrlq xmm6, 0xe
shufps xmm6, xmm5, 0xe4
movdqa xmm5, xmm2
movdqa xmm7, xmm2
psllq xmm5, 0x2e
movd esi, xmm4
mov dword [esp + 0x14], esi
psllq xmm4, 0x32
shufps xmm4, xmm5, 0xe4
orps xmm4, xmm6
pshufd xmm5, xmm4, 0xee
pxor xmm5, xmm4
movd edi, xmm3
mov dword [esp + 0x1c], edi
mov eax, esi
shld eax, edi, 0x17
movd ecx, xmm5
xor eax, ecx
mov ecx, edi
shld ecx, esi, 0x17
pshufd xmm3, xmm5, 0x55
movd edx, xmm3
xor ecx, edx
mov edx, dword [esp + 0x50]
and edx, edi
xor edx, dword [esp + 0x60]
and ebx, esi
xor ebx, dword [esp + 0x30]
add ebx, dword [esp + 0x98]
adc edx, dword [esp + 0x9c]
mov esi, edx
mov edx, dword [esp + 0xc]
add ebx, dword [edx*8 + 0x4a4338]
mov edx, dword [esp + 0xc]
adc esi, dword [edx*8 + 0x4a433c]
add ebx, eax
adc esi, ecx
mov eax, dword [esp + 0xc]
add ebx, dword [esp + eax*8 + 0x100]
movd xmm2, dword [esp + 0x94]
mov eax, dword [esp + 0xc]
adc esi, dword [esp + eax*8 + 0x104]
mov dword [esp + 0x50], esi
punpcklqdq xmm2, xmm1
shufps xmm2, xmm0, 0xe2
paddq xmm2, xmm7
movdqa xmm3, xmm7
movdqa xmmword [esp + 0xa0], xmm7
pshufd xmm1, xmm2, 0x55
pshufd xmm4, xmm2, 0x44
movdqa xmm5, xmm2
psrlq xmm5, 0x1c
movdqa xmm6, xmm4
psrlq xmm6, 0x22
movsd xmm6, xmm5
movdqa xmm5, xmm2
psllq xmm5, 0x24
psllq xmm4, 0x1e
movsd xmm4, xmm5
orpd xmm4, xmm6
pshufd xmm5, xmm4, 0xee
pxor xmm5, xmm4
movd edx, xmm2
movd ecx, xmm1
mov esi, edx
shld esi, ecx, 0x19
movd edi, xmm5
xor esi, edi
shld ecx, edx, 0x19
pshufd xmm1, xmm5, 0x55
movd edx, xmm1
xor ecx, edx
movdqa xmm4, xmm2
movdqa xmmword [esp + 0x30], xmm2
movdqa xmm1, xmm2
por xmm1, xmm0
movd edi, xmm1
and edi, dword [esp + 0x20]
pand xmm4, xmm0
movd edx, xmm4
or edx, edi
pshufd xmm1, xmm1, 0x55
movd edi, xmm1
and edi, dword [esp + 0x18]
pshufd xmm1, xmm4, 0x55
movd eax, xmm1
or eax, edi
add edx, esi
adc eax, ecx
movd xmm1, dword [esp + 0x50]
movd xmm4, ebx
movd xmm6, eax
movd xmm5, edx
movd xmm7, dword [esp + 0x70]
punpckldq xmm4, xmm1
movd xmm1, dword [esp + 0x28]
pshufd xmm4, xmm4, 0x44
punpckldq xmm5, xmm6
punpckldq xmm7, xmm1
punpcklqdq xmm5, xmm7
paddq xmm5, xmm4
movdqa xmm1, xmm5
psrlq xmm1, 0x1c
movdqa xmm4, xmm5
psrlq xmm4, 0xe
movsd xmm4, xmm1
movdqa xmm6, xmm5
psllq xmm6, 0x24
movdqa xmm1, xmm5
psllq xmm1, 0x32
movsd xmm1, xmm6
orpd xmm1, xmm4
movdqa xmm4, xmm5
psrlq xmm4, 0x22
movdqa xmm6, xmm5
psrlq xmm6, 0x12
movsd xmm6, xmm4
movdqa xmm7, xmm5
psllq xmm7, 0x1e
movdqa xmm4, xmm5
psllq xmm4, 0x2e
movsd xmm4, xmm7
orpd xmm4, xmm6
xorpd xmm4, xmm1
movdqa xmm1, xmm5
psrlq xmm1, 0x27
movdqa xmm6, xmm5
psrlq xmm6, 0x29
movsd xmm6, xmm1
movdqa xmm7, xmm5
psllq xmm7, 0x19
movdqa xmm1, xmm5
psllq xmm1, 0x17
movsd xmm1, xmm7
movss xmm7, dword [esp + 0x2c]
orpd xmm1, xmm6
xorpd xmm1, xmm4
movdqa xmm4, xmm5
pandn xmm4, xmm0
movdqa xmm2, xmm3
pand xmm2, xmm5
por xmm2, xmm4
movss xmm4, dword [esp + 0x24]
movlhps xmm4, xmm7
movdqa xmm7, xmm5
shufps xmm7, xmm4, 0x24
mov eax, dword [esp + 0xc]
movq xmm4, qword [esp + eax*8 + 0x108]
pshufd xmm6, xmm4, 0x44
paddq xmm6, xmm7
movdqa xmm7, xmm5
movdqa xmm3, xmmword [esp + 0x30]
por xmm7, xmm3
pand xmm7, xmm0
paddq xmm6, xmm2
movdqa xmm4, xmm5
pand xmm4, xmm3
por xmm4, xmm7
movss xmm2, dword [esp + 0x20]
shufps xmm4, xmm6, 0xe4
paddq xmm4, xmm1
pshufd xmm1, xmm5, 0xee
movss xmm6, dword [esp + 0x18]
movd ecx, xmm1
movlhps xmm6, xmm2
movdqa xmm1, xmm4
shufps xmm1, xmm6, 0x2e
paddq xmm1, xmm4
movdqa xmm2, xmm1
psrlq xmm2, 0x1c
movdqa xmm6, xmm1
psrlq xmm6, 0xe
movsd xmm6, xmm2
movdqa xmm2, xmm1
psllq xmm2, 0x24
movdqa xmm4, xmm1
psllq xmm4, 0x32
movsd xmm4, xmm2
orpd xmm4, xmm6
movdqa xmm2, xmm1
psrlq xmm2, 0x22
movdqa xmm7, xmm1
psrlq xmm7, 0x12
movsd xmm7, xmm2
movdqa xmm2, xmm1
psllq xmm2, 0x1e
movdqa xmm6, xmm1
psllq xmm6, 0x2e
movsd xmm6, xmm2
orpd xmm6, xmm7
xorpd xmm6, xmm4
movdqa xmm2, xmm1
psrlq xmm2, 0x27
movdqa xmm7, xmm1
psrlq xmm7, 0x29
movsd xmm7, xmm2
movdqa xmm2, xmm1
psllq xmm2, 0x19
movdqa xmm4, xmm1
psllq xmm4, 0x17
movsd xmm4, xmm2
orpd xmm4, xmm7
pshufd xmm2, xmm5, 0xff
mov eax, ecx
mov edx, ecx
mov ecx, dword [esp + 0x14]
xor eax, ecx
movd esi, xmm2
movd xmm2, eax
mov eax, esi
mov edi, dword [esp + 0x1c]
xor eax, edi
xorpd xmm4, xmm6
movd xmm7, eax
punpcklqdq xmm7, xmm2
movdqa xmm6, xmm5
shufps xmm6, xmm7, 0x24
movdqa xmm2, xmm1
pand xmm2, xmm5
movdqa xmm7, xmm1
por xmm7, xmm5
pand xmm7, xmm3
por xmm7, xmm2
andps xmm6, xmm1
xorps xmm6, xmmword [esp + 0xa0]
movd xmm2, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
add ecx, dword [eax*8 + 0x4a4350]
mov ebx, ecx
mov eax, dword [esp + 0xc]
adc edi, dword [eax*8 + 0x4a4354]
movd xmm3, dword [esp + 0x40]
punpckldq xmm3, xmm2
pshufd xmm3, xmm3, 0x44
paddq xmm3, xmm6
movsd xmm3, xmm7
paddq xmm3, xmm4
movdqa xmm2, xmm3
movdqa xmm7, xmm3
punpckhqdq xmm2, xmm1
shufps xmm0, xmm5, 0xe4
paddq xmm0, xmm2
pshufd xmm2, xmm0, 0x55
movd ecx, xmm2
mov dword [esp + 0x20], ecx
pshufd xmm4, xmm0, 0x44
movdqa xmmword [esp + 0x70], xmm4
movdqa xmm2, xmm0
psrlq xmm2, 0xe
movdqa xmm3, xmm4
psrlq xmm3, 0x12
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm2, 0x32
psllq xmm4, 0x2e
movsd xmm4, xmm2
mov eax, dword [esp + 0xc]
add ebx, dword [esp + eax*8 + 0x118]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0xc]
adc edi, dword [esp + eax*8 + 0x11c]
orpd xmm4, xmm3
pshufd xmm3, xmm4, 0x44
pxor xmm3, xmm4
movdqa xmm2, xmm1
pxor xmm2, xmm5
pshufd xmm2, xmm2, 0xee
pand xmm2, xmm0
mov eax, dword [esp + 0xc]
add edx, dword [eax*8 + 0x4a4358]
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0xc]
adc esi, dword [eax*8 + 0x4a435c]
mov dword [esp + 0x28], esi
movd edx, xmm0
mov dword [esp + 0x10], edx
mov eax, edx
shld eax, ecx, 0x17
movsd xmm3, xmm2
movd xmm2, eax
mov eax, ecx
shld eax, edx, 0x17
movd xmm4, eax
punpcklqdq xmm4, xmm2
movaps xmm2, xmm5
shufps xmm2, xmm4, 0x2e
xorps xmm2, xmm3
mov eax, dword [esp + 0xc]
movss xmm3, dword [eax*8 + 0x4a4360]
mov eax, dword [esp + 0xc]
movss xmm4, dword [eax*8 + 0x4a4364]
movlhps xmm4, xmm3
movaps xmm3, xmm1
movsd xmm3, xmm7
shufps xmm7, xmm4, 0x2e
paddq xmm7, xmm3
pshufd xmm3, xmm1, 0xee
movd dword [esp + 0x1c], xmm3
pshufd xmm3, xmm1, 0xff
movd dword [esp + 0x18], xmm3
pshufd xmm3, xmm2, 0x55
movd esi, xmm3
pshufd xmm3, xmm2, 0xff
movd ebx, xmm3
movdqa xmm3, xmm7
psrlq xmm3, 0x1c
pshufd xmm6, xmm7, 0x44
movdqa xmm4, xmm6
psrlq xmm4, 0x22
movsd xmm4, xmm3
movdqa xmm3, xmm7
psllq xmm3, 0x24
psllq xmm6, 0x1e
movsd xmm6, xmm3
orpd xmm6, xmm4
pshufd xmm4, xmm6, 0xee
pxor xmm4, xmm6
movd ecx, xmm2
pshufd xmm2, xmm2, 0xee
movd edx, xmm2
pshufd xmm2, xmm7, 0x55
movd eax, xmm2
movdqa xmm2, xmm7
movaps xmmword [esp + 0x60], xmm1
por xmm2, xmm1
pand xmm2, xmm5
movdqa xmm3, xmm7
pand xmm3, xmm1
por xmm3, xmm2
add ecx, dword [esp + 0x14]
adc esi, edi
add edx, ecx
adc ebx, esi
movd dword [esp + 0x14], xmm4
pshufd xmm2, xmm4, 0x55
movd edi, xmm2
pshufd xmm2, xmm3, 0x55
movd ecx, xmm2
movd xmm4, ebx
movd ebx, xmm3
movd xmm3, edx
movd esi, xmm7
movdqa xmm1, xmm7
mov edx, esi
shld edx, eax, 0x19
shld eax, esi, 0x19
xor edx, dword [esp + 0x14]
xor eax, edi
mov esi, dword [esp + 0x18]
xor esi, dword [esp + 0x20]
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0x1c]
xor edi, dword [esp + 0x10]
add ebx, edx
adc ecx, eax
movdqa xmm2, xmm5
punpcklqdq xmm2, xmm0
movd xmm0, ecx
punpckldq xmm3, xmm4
movd xmm5, ebx
pshufd xmm3, xmm3, 0x44
punpckldq xmm5, xmm0
punpcklqdq xmm5, xmmword [esp + 0x30]
paddq xmm5, xmm3
movdqa xmm0, xmm5
psrlq xmm0, 0x1c
movdqa xmm3, xmm5
psrlq xmm3, 0xe
movsd xmm3, xmm0
movdqa xmm4, xmm5
psllq xmm4, 0x24
movdqa xmm0, xmm5
psllq xmm0, 0x32
movsd xmm0, xmm4
orpd xmm0, xmm3
movdqa xmm3, xmm5
psrlq xmm3, 0x22
movdqa xmm4, xmm5
psrlq xmm4, 0x12
movsd xmm4, xmm3
movdqa xmm6, xmm5
psllq xmm6, 0x1e
movdqa xmm3, xmm5
psllq xmm3, 0x2e
movsd xmm3, xmm6
orpd xmm3, xmm4
xorpd xmm3, xmm0
movdqa xmm0, xmm5
psrlq xmm0, 0x27
movdqa xmm4, xmm5
psrlq xmm4, 0x29
movsd xmm4, xmm0
movdqa xmm6, xmm5
psllq xmm6, 0x19
movdqa xmm0, xmm5
psllq xmm0, 0x17
movsd xmm0, xmm6
orpd xmm0, xmm4
movd xmm4, edi
xorpd xmm0, xmm3
movd xmm6, dword [esp + 0x18]
punpcklqdq xmm6, xmm4
movdqa xmm3, xmm5
shufps xmm3, xmm6, 0x24
movss xmm4, dword [esp + 0x28]
movss xmm6, dword [esp + 0x40]
movlhps xmm4, xmm6
movdqa xmm6, xmm5
shufps xmm6, xmm4, 0x24
mov eax, dword [esp + 0xc]
movss xmm4, dword [esp + eax*8 + 0x120]
mov eax, dword [esp + 0xc]
movss xmm7, dword [esp + eax*8 + 0x124]
movlhps xmm7, xmm4
movdqa xmm4, xmm1
shufps xmm4, xmm7, 0x24
paddq xmm4, xmm6
andps xmm3, xmm5
movaps xmm6, xmmword [esp + 0x60]
xorps xmm3, xmm6
paddq xmm4, xmm3
movdqa xmm3, xmm5
movdqa xmm7, xmm1
movdqa xmmword [esp + 0x50], xmm1
movaps xmm1, xmm6
por xmm3, xmm7
pand xmm3, xmm6
movdqa xmm6, xmm5
pand xmm6, xmm7
por xmm6, xmm3
shufps xmm6, xmm4, 0xe4
paddq xmm6, xmm0
pshufd xmm0, xmm5, 0xff
movd dword [esp + 0x14], xmm0
movdqa xmm0, xmm6
punpckhqdq xmm0, xmm5
paddq xmm0, xmm2
pxor xmm2, xmm5
movdqa xmm4, xmm6
punpcklqdq xmm4, xmm0
movdqa xmm3, xmm0
movdqa xmmword [esp + 0x40], xmm0
punpckhqdq xmm6, xmm2
paddq xmm6, xmm4
pand xmm4, xmm2
movdqa xmmword [esp + 0x30], xmm4
movdqa xmm0, xmm6
punpcklqdq xmm0, xmm3
movdqa xmm2, xmm6
psrlq xmm2, 0x1c
movdqa xmm7, xmm0
psrlq xmm7, 0xe
movsd xmm7, xmm2
movdqa xmm2, xmm6
psllq xmm2, 0x24
movdqa xmm4, xmm0
psllq xmm4, 0x32
movsd xmm4, xmm2
orpd xmm4, xmm7
movdqa xmm2, xmm6
psrlq xmm2, 0x22
movdqa xmm7, xmm0
psrlq xmm7, 0x12
movsd xmm7, xmm2
movdqa xmm3, xmm6
psllq xmm3, 0x1e
movdqa xmm2, xmm0
psllq xmm2, 0x2e
movsd xmm2, xmm3
orpd xmm2, xmm7
xorpd xmm2, xmm4
movdqa xmm3, xmm6
psrlq xmm3, 0x27
movdqa xmm4, xmm0
psrlq xmm4, 0x29
movsd xmm4, xmm3
movdqa xmm3, xmm6
psllq xmm3, 0x19
psllq xmm0, 0x17
movsd xmm0, xmm3
orpd xmm0, xmm4
xorpd xmm0, xmm2
pshufd xmm2, xmm5, 0x55
movd dword [esp + 0xa0], xmm2
pshufd xmm2, xmm6, 0x55
movd dword [esp + 0x28], xmm2
movdqa xmm2, xmm6
por xmm2, xmm5
movdqa xmm4, xmmword [esp + 0x50]
pand xmm2, xmm4
movdqa xmm3, xmm6
pand xmm3, xmm5
por xmm3, xmm2
mov eax, dword [esp + 0xc]
movq xmm2, qword [esp + eax*8 + 0x128]
pshufd xmm2, xmm2, 0x44
paddq xmm2, xmm4
movdqa xmm4, xmmword [esp + 0x70]
pxor xmm4, xmmword [esp + 0x30]
paddq xmm4, xmm2
movsd xmm4, xmm3
paddq xmm4, xmm0
movdqa xmm0, xmm4
pshufd xmm4, xmm4, 0xee
paddq xmm4, xmm0
shufpd xmm0, xmmword [esp + 0x40], 1
shufps xmm1, xmm5, 0xe4
movapd xmm2, xmm0
paddq xmm2, xmm1
pxor xmm1, xmm0
pshufd xmm0, xmm2, 0x55
movd eax, xmm0
movdqa xmm0, xmm2
psrlq xmm0, 0xe
pshufd xmm3, xmm2, 0x44
movdqa xmm7, xmm3
psrlq xmm7, 0x12
movsd xmm7, xmm0
movdqa xmm0, xmm2
psllq xmm0, 0x32
psllq xmm3, 0x2e
movsd xmm3, xmm0
orpd xmm3, xmm7
pshufd xmm0, xmm3, 0xee
pxor xmm0, xmm3
movd dword [esp + 0x70], xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x1c], xmm0
pshufd xmm0, xmm1, 0xee
pand xmm0, xmm2
pshufd xmm3, xmm5, 0xee
movd dword [esp + 0x60], xmm3
pxor xmm0, xmm3
pshufd xmm3, xmm0, 0x55
movd dword [esp + 0x18], xmm3
movd ebx, xmm0
pshufd xmm0, xmm4, 0x55
movd esi, xmm0
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edi, dword [ecx*8 + 0x4a4368]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
adc edx, dword [ecx*8 + 0x4a436c]
movdqa xmm0, xmm4
por xmm0, xmm6
pand xmm0, xmm5
movdqa xmm3, xmm4
pand xmm3, xmm6
por xmm3, xmm0
mov ecx, dword [esp + 0xc]
add edi, dword [esp + ecx*8 + 0x130]
mov dword [esp + 0x10], edi
pshufd xmm0, xmm3, 0x55
movd dword [esp + 0x24], xmm0
mov ecx, dword [esp + 0xc]
adc edx, dword [esp + ecx*8 + 0x134]
mov edi, edx
movd edx, xmm2
mov ecx, edx
shld ecx, eax, 0x17
movd dword [esp + 0x2c], xmm3
xor ecx, dword [esp + 0x70]
shld eax, edx, 0x17
xor eax, dword [esp + 0x1c]
add ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
adc edx, edi
add ebx, ecx
adc edx, eax
movd ecx, xmm4
mov eax, ecx
shld eax, esi, 4
mov edi, esi
shld edi, ecx, 4
movd xmm0, edx
movd xmm3, ebx
mov ebx, dword [esp + 0xc]
punpckldq xmm3, xmm0
mov edx, esi
shld edx, ecx, 0x1e
xor edx, eax
mov eax, ecx
shld eax, esi, 0x1e
xor eax, edi
mov edi, ecx
shld edi, esi, 0x19
xor edi, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ecx
shld esi, ecx, 0x19
xor esi, edx
mov edx, dword [esp + 0x2c]
add edx, edi
mov ecx, dword [esp + 0x24]
adc ecx, esi
movd xmm7, ecx
movd xmm0, edx
punpckldq xmm0, xmm7
punpcklqdq xmm0, xmmword [esp + 0x50]
pshufd xmm3, xmm3, 0x44
paddq xmm0, xmm3
movdqa xmm3, xmmword [esp + 0x40]
movdqa xmm7, xmm2
punpcklqdq xmm7, xmm3
add ebx, 8
movd eax, xmm5
movd dword [esp + 0x70], xmm6
mov ecx, ebx
cmp ebx, 0x48
jb 0x440180
movapd xmm7, xmmword [esp + 0x30]
movsd xmm7, xmm6
movsd xmm1, xmm2
pshufd xmm2, xmm0, 0xee
punpcklqdq xmm0, xmm4
mov eax, dword [esp + 0x88]
movdqu xmm4, xmmword [eax + 8]
paddq xmm4, xmm0
movdqu xmm0, xmmword [eax + 0x18]
movdqu xmmword [eax + 8], xmm4
unpcklpd xmm7, xmm5
paddq xmm7, xmm0
movdqu xmmword [eax + 0x18], xmm7
movdqu xmm0, xmmword [eax + 0x28]
punpcklqdq xmm2, xmm1
paddq xmm2, xmm0
movdqu xmmword [eax + 0x28], xmm2
movdqu xmm0, xmmword [eax + 0x38]
shufps xmm3, xmm5, 0xe4
paddq xmm3, xmm0
movdqu xmmword [eax + 0x38], xmm3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret