Function at 0x43a9a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x3d0
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
movups xmm0, xmmword [ecx + 0x40]
movups xmmword [esp + 0x3b8], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [esp + 0x3a8], xmm0
movdqu xmm0, xmmword [ecx + 0x10]
movups xmm1, xmmword [ecx + 0x20]
movups xmmword [esp + 0x398], xmm1
movdqu xmmword [esp + 0x388], xmm0
movdqu xmm1, xmmword [eax]
pxor xmm0, xmm0
movdqa xmm2, xmm1
punpckhbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esp + 0x108], xmm1
movdqu xmm2, xmmword [eax + 0x10]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0x118], xmm2
movdqu xmm2, xmmword [eax + 0x20]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0x128], xmm2
movdqu xmm2, xmmword [eax + 0x30]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0x138], xmm2
movdqu xmm2, xmmword [eax + 0x40]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0x148], xmm2
movdqu xmm2, xmmword [eax + 0x50]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0x158], xmm2
movdqu xmm2, xmmword [eax + 0x60]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esp + 0x168], xmm2
movdqu xmm2, xmmword [eax + 0x70]
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshufd xmm0, xmm2, 0x4e
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm3
movdqu xmmword [esp + 0x178], xmm0
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd edx, xmm0
mov eax, 0x12
nop dword [eax]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], ecx
mov esi, dword [esp + eax*8 + 0xec]
mov edi, dword [esp + eax*8 + 0xe8]
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*8 + 0xc0]
adc esi, dword [esp + eax*8 + 0xc4]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*8 + 0x80]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + ecx*8 + 0x84]
mov ecx, eax
shld ecx, ebx, 0x1f
mov dword [esp + 0xc], ecx
mov edx, ebx
mov ecx, ebx
shld edx, eax, 0x1f
mov ebx, eax
mov dword [esp + 0x30], ecx
shld ebx, ecx, 0x18
xor ebx, dword [esp + 0xc]
mov eax, dword [esp + 8]
shld ecx, eax, 0x18
xor ecx, edx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 8]
shld edx, eax, 0x19
mov eax, dword [esp + 0x10]
xor edx, ecx
mov ecx, dword [esp + 0x30]
shr ecx, 7
xor ecx, ebx
add edi, dword [esp + 0x40]
adc esi, dword [esp + 0x14]
add edi, edx
adc esi, ecx
mov dword [esp + eax*8 + 0xf8], edi
mov dword [esp + eax*8 + 0xfc], esi
inc eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x30]
cmp eax, 0x52
jne 0x43abe0
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3b8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3b4]
mov dword [esp + 0x30], eax
movss xmm0, dword [esp + 0x388]
movss xmm1, dword [esp + 0x38c]
movlhps xmm1, xmm0
movups xmm3, xmmword [esp + 0x3a8]
shufps xmm3, xmm1, 0x24
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x390]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x394]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3a0]
mov dword [esp + 0xb0], eax
mov ecx, 0xfffffff8
nop word [eax + eax]
mov dword [esp + 8], ecx
pshufd xmm0, xmm3, 0x55
movd edi, xmm3
movd esi, xmm0
mov dword [esp + 0x50], esi
mov edx, edi
shld edx, esi, 0x12
mov eax, edi
shld eax, esi, 0xe
xor eax, edx
mov ebx, esi
shld ebx, edi, 0x12
mov edx, esi
shld edx, edi, 0xe
xor edx, ebx
mov ebx, edi
shld ebx, esi, 0x17
xor ebx, edx
shld esi, edi, 0x17
mov dword [esp + 0x70], edi
xor esi, eax
add ebx, dword [esp + 0xc]
adc esi, dword [esp + 0x28]
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x18]
xor eax, esi
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
xor ecx, edx
and ecx, edi
and eax, dword [esp + 0x50]
xor eax, esi
xor ecx, edx
mov edx, dword [esp + 8]
add ebx, dword [edx*8 + 0x44b010]
mov edi, dword [esp + 0xc]
adc edi, dword [edx*8 + 0x44b014]
add ebx, dword [esp + edx*8 + 0x148]
adc edi, dword [esp + edx*8 + 0x14c]
add ebx, ecx
mov dword [esp + 0x28], ebx
adc edi, eax
mov dword [esp + 0xc], edi
pshufd xmm0, xmm3, 0xff
pshufd xmm1, xmm3, 0xee
movdqa xmmword [esp + 0xe0], xmm1
movd ebx, xmm0
mov dword [esp + 0xa0], ebx
movd edi, xmm1
mov eax, edi
shld eax, ebx, 4
mov edx, ebx
shld edx, edi, 4
mov ecx, ebx
shld ecx, edi, 0x1e
xor ecx, eax
mov esi, edi
shld esi, ebx, 0x1e
xor esi, edx
mov edx, edi
shld edx, ebx, 0x19
xor edx, esi
mov esi, ebx
shld esi, edi, 0x19
mov dword [esp + 0x80], edi
xor esi, ecx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
and ecx, edi
or ebx, edi
and ebx, dword [esp + 0x14]
or ebx, ecx
mov ecx, dword [esp + 0x24]
mov eax, ecx
mov edi, dword [esp + 0xa0]
and eax, edi
or ecx, edi
and ecx, dword [esp + 0x10]
or ecx, eax
add ebx, edx
mov dword [esp + 0x60], ebx
adc ecx, esi
mov dword [esp + 0xd0], ecx
mov edi, dword [esp + 0xb0]
add edi, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
adc edx, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov eax, edi
shld eax, edx, 0x12
mov ecx, edi
shld ecx, edx, 0xe
mov esi, edx
shld esi, edi, 0x12
xor ecx, eax
mov eax, edx
shld eax, edi, 0xe
xor eax, esi
mov ebx, edi
shld ebx, edx, 0x17
xor ebx, eax
shld edx, edi, 0x17
xor edx, ecx
mov dword [esp + 0xc0], edx
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x40]
xor eax, esi
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
xor ecx, edx
and ecx, dword [esp + 0x20]
and eax, edi
xor ecx, edx
xor eax, esi
add eax, dword [esp + 0x2c]
adc ecx, dword [esp + 0x18]
mov edx, ecx
mov ecx, dword [esp + 8]
add eax, dword [ecx*8 + 0x44b018]
mov ecx, dword [esp + 8]
adc edx, dword [ecx*8 + 0x44b01c]
add eax, ebx
mov esi, eax
movss xmm1, dword [esp + 0xc]
movss xmm2, dword [esp + 0x28]
mov ecx, edx
adc ecx, dword [esp + 0xc0]
movss xmm4, dword [esp + 0x60]
movss xmm5, dword [esp + 0xd0]
mov dword [esp + 0xb0], edi
mov dword [esp + 0x3a0], edi
mov edx, dword [esp + 0x20]
mov dword [esp + 0x3a4], edx
movd xmm0, edx
movdqa xmmword [esp + 0xd0], xmm0
movd xmm6, edi
movlhps xmm1, xmm2
punpckldq xmm6, xmm0
movdqa xmmword [esp + 0xc0], xmm6
movdqa xmm2, xmm6
movlhps xmm5, xmm4
movaps xmm7, xmm3
movaps xmmword [esp + 0x90], xmm3
shufps xmm2, xmm1, 0x24
shufps xmm7, xmm5, 0x24
paddq xmm7, xmm2
mov eax, dword [esp + 8]
mov eax, dword [eax*8 + 0x44b030]
add eax, edi
mov dword [esp + 0x2c], eax
pshufd xmm1, xmm7, 0xee
mov eax, dword [esp + 8]
mov eax, dword [eax*8 + 0x44b034]
adc eax, edx
mov dword [esp + 0x18], eax
movq qword [esp + 0x3c0], xmm1
mov eax, dword [esp + 8]
add esi, dword [esp + eax*8 + 0x150]
mov dword [esp + 0x70], esi
pshufd xmm2, xmm7, 0xff
mov eax, dword [esp + 8]
adc ecx, dword [esp + eax*8 + 0x154]
mov dword [esp + 0x50], ecx
movd edi, xmm2
movd esi, xmm1
mov ecx, esi
shld ecx, edi, 4
mov eax, edi
shld eax, esi, 0x1e
xor eax, ecx
mov edx, edi
shld edx, esi, 4
mov ecx, esi
mov dword [esp + 0xc], esi
shld ecx, edi, 0x1e
mov dword [esp + 0x28], edi
xor ecx, edx
mov edx, esi
mov ebx, dword [esp + 0x80]
and edx, ebx
or ebx, esi
and ebx, dword [esp + 0x1c]
or ebx, edx
mov dword [esp + 0x80], ebx
mov edx, esi
shld edx, edi, 0x19
xor edx, ecx
mov ecx, edi
shld ecx, esi, 0x19
xor ecx, eax
mov eax, edi
mov ebx, dword [esp + 0xa0]
and eax, ebx
or ebx, edi
and ebx, dword [esp + 0x24]
or ebx, eax
mov edi, dword [esp + 0x80]
add edi, edx
adc ebx, ecx
mov ecx, ebx
mov esi, dword [esp + 0x50]
movd xmm1, esi
mov edx, dword [esp + 0x70]
movd xmm2, edx
mov eax, dword [esp + 8]
movd xmm4, dword [eax*8 + 0x44b024]
punpckldq xmm2, xmm1
mov eax, dword [esp + 8]
movd xmm1, dword [eax*8 + 0x44b020]
punpckldq xmm1, xmm4
movd xmm4, ecx
punpcklqdq xmm1, xmm2
movd xmm2, edi
punpckldq xmm2, xmm4
movd xmm6, dword [esp + 0x40]
movd xmm4, dword [esp + 0x30]
punpckldq xmm6, xmm4
mov ebx, dword [esp + 0x14]
add ebx, edx
mov eax, dword [esp + 0x10]
adc eax, esi
punpcklqdq xmm6, xmm2
movd xmm2, ebx
mov dword [esp + 0x14], ebx
paddq xmm6, xmm1
movd xmm0, eax
mov esi, eax
mov dword [esp + 0x10], eax
punpcklqdq xmm0, xmm2
movdqa xmmword [esp + 0x50], xmm0
movdqa xmm2, xmm0
shufps xmm2, xmm6, 0xe2
movdqa xmm4, xmm6
psrlq xmm4, 0x1c
movaps xmm1, xmm2
psrlq xmm1, 0xe
shufps xmm1, xmm4, 0xe4
movdqa xmm5, xmm6
psllq xmm5, 0x24
movaps xmm4, xmm2
psllq xmm4, 0x32
shufps xmm4, xmm5, 0xe4
movdqa xmm5, xmm6
psrlq xmm5, 0x22
movaps xmm0, xmm2
psrlq xmm0, 0x12
shufps xmm0, xmm5, 0xe4
movdqa xmm3, xmm6
psllq xmm3, 0x1e
movaps xmm5, xmm2
psllq xmm5, 0x2e
shufps xmm5, xmm3, 0xe4
orps xmm4, xmm1
orps xmm5, xmm0
movdqa xmm0, xmm6
psrlq xmm0, 0x27
movaps xmm3, xmm2
psrlq xmm3, 0x29
shufps xmm3, xmm0, 0xe4
movdqa xmm0, xmm6
psllq xmm0, 0x19
movaps xmm1, xmm2
psllq xmm1, 0x17
shufps xmm1, xmm0, 0xe4
xorps xmm5, xmm4
orps xmm1, xmm3
xorps xmm1, xmm5
movaps xmm0, xmmword [esp + 0xc0]
andps xmm0, xmm2
movaps xmm4, xmmword [esp + 0x90]
andnps xmm2, xmm4
orps xmm2, xmm0
mov dword [esp + 0x398], ebx
mov dword [esp + 0x39c], eax
movaps xmmword [esp + 0x70], xmm6
pshufd xmm0, xmm6, 0xee
movdqa xmmword [esp + 0xa0], xmm0
movq qword [esp + 0x3b8], xmm0
mov eax, dword [esp + 8]
movss xmm0, dword [esp + eax*8 + 0x158]
mov eax, dword [esp + 8]
movss xmm3, dword [esp + eax*8 + 0x15c]
movlhps xmm3, xmm0
movdqa xmmword [esp + 0x60], xmm7
shufps xmm3, xmm7, 0xe2
paddq xmm3, xmm6
paddq xmm2, xmm3
movaps xmm3, xmm6
andps xmm3, xmm7
orps xmm6, xmm7
andps xmm6, xmm4
orps xmm6, xmm3
movsd xmm6, xmm2
paddq xmm6, xmm1
mov eax, dword [esp + 8]
movss xmm1, dword [eax*8 + 0x44b028]
mov eax, dword [esp + 8]
movss xmm2, dword [eax*8 + 0x44b02c]
movlhps xmm2, xmm1
shufps xmm2, xmm6, 0xe2
movaps xmm1, xmm4
movlhps xmm1, xmm6
paddq xmm1, xmm2
movdqa xmm2, xmm1
movd edx, xmm6
pshufd xmm0, xmm6, 0x55
movd eax, xmm0
mov ecx, dword [esp + 0xb0]
movd xmm0, ecx
movdqa xmmword [esp + 0x30], xmm0
mov edi, dword [esp + 0x20]
xor edi, esi
xor ecx, ebx
add edx, dword [esp + 0x1c]
adc eax, dword [esp + 0x24]
movd xmm0, edx
mov dword [esp + 0x1c], edx
movd xmm6, eax
mov dword [esp + 0x80], eax
punpcklqdq xmm6, xmm0
shufps xmm6, xmm1, 0xe2
movaps xmm0, xmm6
psrlq xmm0, 0xe
psrlq xmm1, 0x1c
movsd xmm1, xmm0
movaps xmm0, xmm6
psllq xmm0, 0x32
movdqa xmm5, xmm2
psllq xmm5, 0x24
movsd xmm5, xmm0
orpd xmm5, xmm1
movaps xmm0, xmm6
psrlq xmm0, 0x12
movdqa xmm3, xmm2
psrlq xmm3, 0x22
movsd xmm3, xmm0
movaps xmm0, xmm6
psllq xmm0, 0x2e
movdqa xmm1, xmm2
psllq xmm1, 0x1e
movsd xmm1, xmm0
orpd xmm1, xmm3
movdqa xmm3, xmm2
psrlq xmm3, 0x27
movaps xmm0, xmm6
psrlq xmm0, 0x29
movsd xmm3, xmm0
movaps xmm7, xmm6
movaps xmmword [esp + 0xb0], xmm6
psllq xmm7, 0x17
movdqa xmm0, xmm2
psllq xmm0, 0x19
movsd xmm0, xmm7
orpd xmm0, xmm3
xorpd xmm1, xmm5
mov dword [esp + 0x390], edx
mov dword [esp + 0x394], eax
pshufd xmm3, xmm2, 0xee
movdqa xmmword [esp + 0x40], xmm3
movq qword [esp + 0x3b0], xmm3
mov eax, dword [esp + 8]
movss xmm3, dword [esp + eax*8 + 0x160]
mov eax, dword [esp + 8]
movss xmm5, dword [esp + eax*8 + 0x164]
movlhps xmm5, xmm3
movd xmm3, ecx
movd xmm7, edi
punpcklqdq xmm7, xmm3
movaps xmm4, xmmword [esp + 0xd0]
unpcklpd xmm4, xmmword [esp + 0x30]
movaps xmm3, xmmword [esp + 0x70]
shufps xmm7, xmm3, 0xe2
andps xmm7, xmm6
shufps xmm4, xmmword [esp + 0x60], 0xe2
xorps xmm4, xmm7
xorpd xmm0, xmm1
movaps xmm6, xmm3
shufps xmm5, xmm3, 0xe2
movdqa xmm3, xmm2
paddq xmm5, xmm2
paddq xmm4, xmm5
por xmm2, xmm6
pand xmm2, xmmword [esp + 0x60]
movdqa xmm1, xmm3
movdqa xmmword [esp + 0x90], xmm3
pand xmm1, xmm6
por xmm2, xmm1
movsd xmm2, xmm4
paddq xmm2, xmm0
movdqa xmm4, xmmword [esp + 0xe0]
paddq xmm4, xmm2
pshufd xmm0, xmm4, 0x55
movd ebx, xmm0
mov dword [esp + 0x24], ebx
movd edx, xmm4
mov eax, edx
shld eax, ebx, 0x12
mov ecx, dword [esp + 8]
movss xmm1, dword [ecx*8 + 0x44b038]
mov ecx, dword [esp + 8]
movss xmm0, dword [ecx*8 + 0x44b03c]
movlhps xmm0, xmm1
mov ecx, edx
mov dword [esp + 0x60], edx
shld edx, ebx, 0xe
shufps xmm0, xmm2, 0x42
mov esi, ecx
shld esi, ebx, 0x17
mov dword [esp + 0x30], esi
movaps xmm1, xmmword [esp + 0x50]
shufps xmm1, xmm2, 0xe2
mov esi, ebx
shld esi, ecx, 0x12
xor edx, eax
mov edi, ebx
shld edi, ecx, 0xe
xor edi, esi
mov eax, ebx
shld eax, ecx, 0x17
xor dword [esp + 0x30], edi
xor eax, edx
mov ebx, dword [esp + 0x80]
mov edx, ebx
mov esi, dword [esp + 0x10]
xor edx, esi
and edx, dword [esp + 0x24]
xor edx, esi
mov edi, dword [esp + 0x1c]
mov esi, edi
xor esi, dword [esp + 0x14]
and esi, ecx
xor esi, dword [esp + 0x14]
movq qword [esp + 0x388], xmm4
xor ecx, edi
mov dword [esp + 0x14], ecx
paddq xmm1, xmm0
movdqa xmmword [esp + 0x50], xmm1
mov ecx, dword [esp + 0x24]
xor ecx, ebx
mov dword [esp + 0x10], ecx
pshufd xmm0, xmm1, 0xee
movq qword [esp + 0x3a8], xmm0
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
add ebx, dword [esp + edi*8 + 0x168]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x18]
adc ecx, dword [esp + edi*8 + 0x16c]
mov dword [esp + 0x18], ecx
add ebx, esi
mov ecx, dword [esp + 0x18]
adc ecx, edx
pshufd xmm1, xmm1, 0xff
movd edi, xmm1
add ebx, dword [esp + 0x30]
mov dword [esp + 0x2c], ebx
adc ecx, eax
mov dword [esp + 0x18], ecx
movd ecx, xmm0
mov eax, ecx
mov dword [esp + 0x20], edi
shld eax, edi, 4
mov edx, edi
shld edx, ecx, 0x1e
mov ebx, ecx
xor edx, eax
mov dword [esp + 0xe0], edx
pshufd xmm0, xmm3, 0xff
movd ecx, xmm0
mov dword [esp + 0x30], ecx
pshufd xmm0, xmm6, 0xff
mov eax, edi
or eax, ecx
movd ecx, xmm0
and eax, ecx
mov ecx, edi
shld ecx, ebx, 4
mov esi, ebx
shld esi, edi, 0x1e
xor esi, ecx
movdqa xmm0, xmmword [esp + 0x40]
movd edx, xmm0
mov dword [esp + 0x40], edx
mov edi, ebx
mov ecx, ebx
or ecx, edx
movdqa xmm0, xmmword [esp + 0xa0]
movd ebx, xmm0
and ecx, ebx
mov edx, dword [esp + 0x20]
mov ebx, edx
and ebx, dword [esp + 0x30]
or eax, ebx
mov ebx, edi
shld ebx, edx, 0x19
xor ebx, esi
mov esi, edx
shld esi, edi, 0x19
xor esi, dword [esp + 0xe0]
mov edx, edi
and edx, dword [esp + 0x40]
or ecx, edx
add ecx, ebx
adc eax, esi
movd xmm0, ecx
movd xmm1, eax
punpckldq xmm0, xmm1
mov eax, dword [esp + 8]
movd xmm1, dword [eax*8 + 0x44b04c]
mov eax, dword [esp + 8]
movd xmm2, dword [eax*8 + 0x44b048]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x2c]
add eax, edx
punpckldq xmm2, xmm1
mov esi, dword [esp + 0x18]
movd xmm1, esi
mov ecx, dword [esp + 0x28]
adc ecx, esi
mov dword [esp + 0x28], ecx
punpcklqdq xmm2, xmm0
movd xmm0, edx
punpcklqdq xmm1, xmm0
movd xmm0, eax
mov dword [esp + 0xc], eax
shufps xmm4, xmm1, 0x24
paddq xmm4, xmm2
movd xmm6, ecx
movdqa xmmword [esp + 0xa0], xmm6
punpcklqdq xmm6, xmm0
movdqa xmm7, xmm6
shufps xmm7, xmm4, 0xe2
movdqa xmm0, xmm4
psrlq xmm0, 0x1c
movaps xmm1, xmm7
psrlq xmm1, 0xe
shufps xmm1, xmm0, 0xe4
movdqa xmm2, xmm4
psllq xmm2, 0x24
movaps xmm0, xmm7
psllq xmm0, 0x32
shufps xmm0, xmm2, 0xe4
movdqa xmm2, xmm4
psrlq xmm2, 0x22
movaps xmm3, xmm7
psrlq xmm3, 0x12
shufps xmm3, xmm2, 0xe4
movdqa xmm5, xmm4
psllq xmm5, 0x1e
movaps xmm2, xmm7
psllq xmm2, 0x2e
shufps xmm2, xmm5, 0xe4
orps xmm0, xmm1
orps xmm2, xmm3
movdqa xmm1, xmm4
psrlq xmm1, 0x27
movaps xmm3, xmm7
psrlq xmm3, 0x29
shufps xmm3, xmm1, 0xe4
movdqa xmm1, xmm4
psllq xmm1, 0x19
psllq xmm7, 0x17
shufps xmm7, xmm1, 0xe4
orps xmm7, xmm3
xorps xmm2, xmm0
mov dword [esp + 0x3c0], eax
mov dword [esp + 0x3c4], ecx
pshufd xmm1, xmm4, 0xee
movq qword [esp + 0x3a0], xmm1
mov eax, dword [esp + 8]
movss xmm3, dword [esp + eax*8 + 0x170]
mov eax, dword [esp + 8]
movss xmm0, dword [esp + eax*8 + 0x174]
movlhps xmm0, xmm3
movss xmm3, dword [esp + 0x14]
movss xmm5, dword [esp + 0x10]
movlhps xmm5, xmm3
shufps xmm5, xmm4, 0xe2
movaps xmm3, xmmword [esp + 0x50]
shufps xmm6, xmm3, 0xe2
andps xmm6, xmm5
xorps xmm6, xmmword [esp + 0xb0]
movaps xmm5, xmm4
orps xmm4, xmm3
andps xmm4, xmmword [esp + 0x90]
shufps xmm0, xmm5, 0xe2
paddq xmm0, xmm3
paddq xmm6, xmm0
movaps xmm0, xmm3
andps xmm0, xmm5
movaps xmmword [esp + 0xe0], xmm5
orps xmm4, xmm0
xorps xmm7, xmm2
movsd xmm4, xmm6
paddq xmm4, xmm7
pshufd xmm0, xmm4, 0xee
paddq xmm0, xmm4
movd edx, xmm1
movd ecx, xmm0
mov eax, ecx
mov ebx, ecx
mov dword [esp + 0x14], ecx
or eax, edx
and eax, edi
pshufd xmm1, xmm5, 0xff
pshufd xmm2, xmm0, 0x55
movdqa xmm3, xmm0
movdqa xmmword [esp + 0xd0], xmm0
movd esi, xmm1
movd edi, xmm2
mov dword [esp + 0x10], edi
mov ecx, edi
or ecx, esi
and ecx, dword [esp + 0x20]
movd xmm1, eax
movd xmm2, ecx
mov eax, ebx
mov dword [esp + 0xb0], edx
and eax, edx
punpcklqdq xmm2, xmm1
movd xmm1, eax
mov eax, edi
mov dword [esp + 0x20], esi
and eax, esi
shufps xmm4, xmm2, 0x24
movd xmm2, eax
punpcklqdq xmm2, xmm1
movaps xmm0, xmmword [esp + 0x70]
shufps xmm0, xmm2, 0x2e
movaps xmm1, xmm4
paddq xmm1, xmm0
pshufd xmm2, xmm1, 0x55
movd eax, xmm1
movd esi, xmm2
mov edi, eax
shld edi, esi, 0x12
mov edx, eax
shld edx, esi, 0xe
mov ecx, eax
shld ecx, esi, 0x17
mov dword [esp + 0x90], ecx
mov ecx, esi
shld ecx, eax, 0x12
xor edx, edi
mov edi, esi
shld edi, eax, 0xe
xor edi, ecx
mov ebx, esi
shld ebx, eax, 0x17
xor dword [esp + 0x90], edi
xor ebx, edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
xor edx, ecx
mov dword [esp + 0x18], esi
and edx, esi
xor edx, ecx
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x60]
xor esi, ecx
mov dword [esp + 0x2c], eax
and esi, eax
xor esi, ecx
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
add eax, dword [edi*8 + 0x44b040]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x80]
adc ecx, dword [edi*8 + 0x44b044]
movq qword [esp + 0x3b8], xmm1
movq qword [esp + 0x398], xmm3
mov edi, dword [esp + 8]
add eax, dword [esp + edi*8 + 0x178]
mov edi, dword [esp + 8]
adc ecx, dword [esp + edi*8 + 0x17c]
add eax, esi
adc ecx, edx
add eax, dword [esp + 0x90]
mov dword [esp + 0x1c], eax
adc ecx, ebx
mov edi, ecx
mov ebx, dword [esp + 0x14]
mov edx, ebx
mov ecx, dword [esp + 0x10]
shld edx, ecx, 4
mov eax, ecx
shld eax, ebx, 0x1e
xor eax, edx
mov esi, ecx
shld esi, ebx, 4
mov edx, ebx
shld edx, ecx, 0x1e
xor edx, esi
mov esi, ebx
shld esi, ecx, 0x19
xor esi, edx
shld ecx, ebx, 0x19
xor ecx, eax
movd xmm2, esi
orps xmm0, xmm4
movaps xmm5, xmm0
movsd xmm5, xmm1
movd xmm4, ecx
punpcklqdq xmm4, xmm2
movss xmm1, dword [esp + 0xc]
movaps xmmword [esp + 0x70], xmm1
movaps xmm3, xmm1
unpcklps xmm3, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x90], xmm3
shufps xmm3, xmm4, 0x24
movapd xmmword [esp + 0x80], xmm5
movapd xmm2, xmm5
xorpd xmm2, xmm3
paddq xmm3, xmm0
mov eax, dword [esp + 0x1c]
movd xmm4, eax
movd xmm5, edi
punpcklqdq xmm5, xmm4
mov ecx, dword [esp + 0x40]
add ecx, eax
mov eax, dword [esp + 0x30]
adc eax, edi
movd xmm0, eax
movd xmm4, ecx
mov edi, ecx
movdqa xmmword [esp + 0xc0], xmm4
punpckldq xmm4, xmm0
movdqa xmm7, xmm4
shufps xmm7, xmm5, 0x24
movsd xmm3, xmm2
paddq xmm7, xmm3
pand xmm4, xmm2
pshufd xmm2, xmm7, 0xff
movd edx, xmm2
mov dword [esp + 0x30], eax
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b0], ecx
pshufd xmm2, xmm7, 0xee
movd ecx, xmm2
movq qword [esp + 0x390], xmm2
mov dword [esp + 0x40], edi
movd xmm2, edi
movdqa xmmword [esp + 0x60], xmm0
movdqa xmm3, xmm0
punpcklqdq xmm3, xmm2
shufps xmm3, xmm7, 0xe2
movdqa xmm2, xmm7
psrlq xmm2, 0x1c
movaps xmm5, xmm3
psrlq xmm5, 0xe
shufps xmm5, xmm2, 0xe4
movdqa xmm0, xmm7
psllq xmm0, 0x24
movaps xmm2, xmm3
psllq xmm2, 0x32
shufps xmm2, xmm0, 0xe4
movdqa xmm0, xmm7
psrlq xmm0, 0x22
movaps xmm6, xmm3
psrlq xmm6, 0x12
shufps xmm6, xmm0, 0xe4
orps xmm2, xmm5
movdqa xmm0, xmm7
psllq xmm0, 0x1e
movaps xmm5, xmm3
psllq xmm5, 0x2e
shufps xmm5, xmm0, 0xe4
orps xmm5, xmm6
movdqa xmm0, xmm7
psrlq xmm0, 0x27
movaps xmm6, xmm3
psrlq xmm6, 0x29
shufps xmm6, xmm0, 0xe4
movdqa xmm0, xmm7
psllq xmm0, 0x19
psllq xmm3, 0x17
shufps xmm3, xmm0, 0xe4
xorps xmm5, xmm2
orps xmm3, xmm6
movdqa xmm1, xmmword [esp + 0xd0]
xorps xmm3, xmm5
mov dword [esp + 0x24], edx
mov eax, edx
or eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
or ecx, ebx
movd xmm0, ecx
movd xmm5, eax
punpcklqdq xmm5, xmm0
mov eax, dword [esp + 8]
movd xmm0, dword [esp + eax*8 + 0x184]
movd xmm2, dword [esp + eax*8 + 0x180]
punpckldq xmm2, xmm0
movdqa xmm6, xmmword [esp + 0xe0]
movdqa xmm0, xmm6
paddq xmm0, xmm2
shufps xmm2, xmm5, 0x24
movdqa xmm5, xmm6
movdqa xmm6, xmmword [esp + 0x90]
pxor xmm6, xmm4
paddq xmm0, xmm6
movdqa xmm6, xmm1
pshufd xmm1, xmm1, 0x44
pand xmm1, xmm7
andps xmm2, xmm5
orps xmm2, xmm1
movsd xmm2, xmm0
paddq xmm2, xmm3
movdqa xmm3, xmmword [esp + 0x50]
punpckhqdq xmm3, xmm2
pshufd xmm0, xmm2, 0x44
paddq xmm3, xmm0
movq qword [esp + 0x3a8], xmm3
pshufd xmm0, xmm3, 0xee
movq qword [esp + 0x388], xmm0
add eax, 8
mov ecx, eax
cmp eax, 0x48
jb 0x43ad70
movsd xmm7, xmm4
movdqu xmmword [esp + 0xf8], xmm2
movaps xmm0, xmm3
unpckhpd xmm0, xmm7
mov eax, dword [ebp + 8]
movdqu xmm1, xmmword [eax + 0x10]
paddq xmm1, xmm0
movdqu xmm0, xmmword [eax + 0x20]
movdqu xmmword [eax + 0x10], xmm1
movsd xmm5, xmm6
paddq xmm5, xmm0
movdqu xmmword [eax + 0x20], xmm5
movaps xmm0, xmmword [esp + 0x60]
unpcklpd xmm0, xmmword [esp + 0xc0]
shufps xmm3, xmm0, 0x24
movdqu xmm0, xmmword [eax + 0x30]
paddq xmm3, xmm0
movdqu xmmword [eax + 0x30], xmm3
movaps xmm0, xmmword [esp + 0xa0]
unpcklpd xmm0, xmmword [esp + 0x70]
movaps xmm1, xmmword [esp + 0x80]
shufps xmm1, xmm0, 0x24
movdqu xmm0, xmmword [eax + 0x40]
paddq xmm1, xmm0
movdqu xmmword [eax + 0x40], xmm1
lea eax, [esp + 0xf8]
push 0x2d0
push eax
call fcn.00426070
add esp, 8
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret