Function at 0x437280
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1d0
mov ebx, dword [ebp + 0x10]
mov eax, dword [0x4c1074]
xor eax, ebp
mov dword [esp + 0x1c8], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x18]
xor edi, edi
movsd xmm0, qword [edx + edi*8]
movsd qword [esp + edi*8 + 0xc0], xmm0
inc edi
cmp edi, 0x10
jne 0x4372a8
movups xmm0, xmmword [ecx + 0x20]
movaps xmmword [esp + 0x160], xmm0
movups xmm0, xmmword [ecx]
movups xmm1, xmmword [ecx + 0x10]
movaps xmmword [esp + 0x140], xmm0
mov dword [esp + 0x7c], ecx
movups xmm0, xmmword [ecx + 0x30]
movaps xmmword [esp + 0x170], xmm0
xor ebx, 0xade682d1
mov dword [esp + 8], ebx
mov ecx, dword [ebp + 0x14]
xor ecx, 0x510e527f
mov dword [esp + 0x30], ecx
xor edx, edx
neg eax
sbb edx, edx
movaps xmmword [esp + 0x150], xmm1
movd xmm2, esi
movd xmm0, dword [ebp + 0xc]
punpckldq xmm2, xmm0
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm1
pxor xmm2, xmmword [0x49b8a0]
movdqa xmmword [esp + 0x50], xmm2
mov edx, dword [esp + 0x160]
mov ebx, dword [esp + 0x164]
mov ecx, dword [esp + 0x140]
mov eax, dword [esp + 0x144]
movq xmm0, qword [esp + 0x170]
movq xmm5, qword [esp + 0x148]
punpcklqdq xmm5, xmm0
movq xmm0, qword [esp + 0x150]
movq xmm6, qword [esp + 0x168]
punpcklqdq xmm6, xmm0
mov esi, dword [esp + 0x178]
mov dword [esp + 0x24], esi
movdqa xmm4, xmmword [0x49b8b0]
mov esi, dword [esp + 0x17c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], 0x6a09e667
mov dword [esp + 0x18], 0xf3bcc908
mov dword [esp + 0x60], 0x5be0cd19
mov dword [esp + 0x28], 0x137e2179
mov dword [esp + 0x40], 0xa54ff53a
mov dword [esp + 0x14], 0x5f1d36f1
mov dword [esp + 0x10], 0xffffff40
mov edi, dword [esp + 0x158]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x15c]
mov dword [esp + 0xa0], edi
mov dword [esp + 0x20], ebx
add ecx, edx
adc eax, ebx
mov esi, dword [esp + 0x10]
movzx edi, byte [esi + 0x49b8a0]
mov dword [esp + 0x10], esi
add ecx, dword [esp + edi*8 + 0xc0]
adc eax, dword [esp + edi*8 + 0xc4]
mov dword [esp + 0x90], eax
movzx edi, byte [esi + 0x49b8a4]
movq xmm2, qword [esp + edi*8 + 0xc0]
movzx edi, byte [esi + 0x49b8a2]
movq xmm0, qword [esp + edi*8 + 0xc0]
mov ebx, dword [esp + 0x30]
xor ebx, eax
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 8]
xor eax, ecx
mov dword [esp + 8], eax
mov edi, dword [esp + 0x18]
add edi, ebx
mov esi, dword [esp + 0x1c]
adc esi, eax
xor edx, edi
movd xmm1, edx
mov eax, dword [esp + 0x20]
xor eax, esi
movd xmm3, eax
punpcklqdq xmm0, xmm2
movdqa xmm2, xmm6
paddq xmm2, xmm5
paddq xmm0, xmm2
movdqa xmm7, xmmword [esp + 0x50]
pxor xmm7, xmm0
movdqa xmm2, xmm7
psrlq xmm2, 0x20
movsd xmm2, xmm2
psllq xmm7, 0x20
movsd xmm7, xmm7
orpd xmm7, xmm2
paddq xmm4, xmm7
movdqa xmmword [esp + 0x50], xmm4
pxor xmm6, xmm4
movdqa xmm2, xmm1
punpckldq xmm2, xmm3
movdqa xmm3, xmm2
punpcklqdq xmm3, xmm6
movdqa xmm4, xmm3
psllq xmm3, 0x28
psllq xmm1, 0x28
shufpd xmm1, xmm3, 2
movd xmm3, dword [esp + 0x90]
psrlq xmm4, 0x18
psrlq xmm2, 0x18
movsd xmm4, xmm2
orpd xmm1, xmm4
movd xmm4, ecx
punpckldq xmm4, xmm3
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + 0x49b8a3]
movq xmm3, qword [esp + eax*8 + 0xc0]
movzx eax, byte [ecx + 0x49b8a1]
mov ebx, ecx
movq xmm6, qword [esp + eax*8 + 0xc0]
punpcklqdq xmm6, xmm3
punpcklqdq xmm4, xmm0
paddq xmm6, xmm4
paddq xmm6, xmm1
movd eax, xmm6
xor eax, dword [esp + 0x30]
pshufd xmm3, xmm6, 0x55
movd ecx, xmm3
xor ecx, dword [esp + 8]
mov edx, eax
shld edx, ecx, 0x10
mov dword [esp + 0xb0], edx
shld ecx, eax, 0x10
mov dword [esp + 0x90], ecx
add edi, ecx
mov dword [esp + 0x18], edi
adc esi, edx
mov dword [esp + 0x1c], esi
pshufd xmm3, xmm1, 0x55
movd eax, xmm3
xor eax, esi
movd ecx, xmm2
xor ecx, edi
mov edx, ecx
shld edx, eax, 1
mov dword [esp + 0x20], edx
shrd ecx, eax, 0x1f
mov dword [esp + 0x8c], ecx
movdqa xmm4, xmmword [esp + 0x50]
pxor xmm5, xmm4
pshufd xmm2, xmm5, 0xff
pshufd xmm3, xmm5, 0xee
movd edx, xmm2
movd eax, xmm3
mov ecx, eax
shld ecx, edx, 8
mov dword [esp + 0x88], ecx
shld edx, eax, 8
mov edi, edx
mov dword [esp + 0x84], edx
pshufd xmm2, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
mov eax, ebx
movzx edx, byte [ebx + 0x49b8a5]
movd ebx, xmm0
add ebx, dword [esp + edx*8 + 0xc0]
movd esi, xmm2
adc esi, dword [esp + edx*8 + 0xc4]
add ebx, edi
mov dword [esp + 0x30], ebx
adc esi, ecx
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
add esi, ecx
mov ebx, dword [esp + 0xa0]
adc ebx, dword [esp + 0xc]
movzx edx, byte [eax + 0x49b8a6]
add esi, dword [esp + edx*8 + 0xc0]
adc ebx, dword [esp + edx*8 + 0xc4]
mov edi, dword [esp + 0x60]
xor edi, ebx
mov dword [esp + 0x60], edi
mov edx, dword [esp + 0x28]
xor edx, esi
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x40]
adc edi, edx
mov dword [esp + 0x40], edi
xor ecx, eax
mov eax, dword [esp + 0xc]
xor eax, edi
mov edi, ecx
shld edi, eax, 8
mov dword [esp + 8], edi
shld eax, ecx, 8
mov ecx, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
movzx edi, byte [eax + 0x49b8a7]
add esi, dword [esp + edi*8 + 0xc0]
movss xmm3, dword [esp + 0x80]
movaps xmmword [esp + 0xa0], xmm3
adc ebx, dword [esp + edi*8 + 0xc4]
movss xmm5, dword [esp + 0x30]
movaps xmmword [esp + 0x30], xmm5
mov edi, eax
movzx eax, byte [eax + 0x49b8aa]
movq xmm2, qword [esp + eax*8 + 0xc0]
movzx eax, byte [edi + 0x49b8a8]
movq xmm0, qword [esp + eax*8 + 0xc0]
punpcklqdq xmm0, xmm2
movaps xmm2, xmm3
movlhps xmm2, xmm5
paddq xmm0, xmm6
shufps xmm6, xmm2, 0x2e
movss xmm2, dword [esp + 0x84]
xorps xmm6, xmm7
movaps xmm3, xmm6
psrlq xmm3, 0x10
movsd xmm3, xmm3
psllq xmm6, 0x30
movsd xmm6, xmm6
orpd xmm6, xmm3
movss xmm3, dword [esp + 0x88]
add esi, ecx
adc ebx, dword [esp + 8]
xor edx, ebx
mov ecx, dword [esp + 0x60]
xor ecx, esi
mov eax, ecx
shld eax, edx, 0x10
shrd ecx, edx, 0x10
movlhps xmm3, xmm2
movd xmm2, dword [esp + 0xb0]
paddq xmm4, xmm6
shufps xmm1, xmm3, 0x2e
xorps xmm1, xmm4
movaps xmmword [esp + 0x50], xmm4
movaps xmm3, xmm1
psrlq xmm3, 0x3f
movsd xmm3, xmm3
psllq xmm1, 1
movsd xmm1, xmm1
orpd xmm1, xmm3
movd xmm3, dword [esp + 0x90]
punpckldq xmm3, xmm2
movd xmm2, eax
movd xmm5, ecx
punpckldq xmm5, xmm2
mov edx, dword [esp + 0x14]
add edx, ecx
mov ecx, dword [esp + 0x40]
adc ecx, eax
mov dword [esp + 0x40], ecx
paddq xmm0, xmm1
punpcklqdq xmm5, xmm3
pxor xmm5, xmm0
movdqa xmm2, xmm5
psrlq xmm2, 0x20
movsd xmm2, xmm2
psllq xmm5, 0x20
movsd xmm5, xmm5
orpd xmm5, xmm2
movd xmm2, ecx
movd xmm3, edx
punpcklqdq xmm2, xmm3
shufps xmm4, xmm2, 0x2e
paddq xmm4, xmm5
pxor xmm1, xmm4
movdqa xmm3, xmm4
movdqa xmm2, xmm1
psrlq xmm2, 0x18
movsd xmm2, xmm2
psllq xmm1, 0x28
movsd xmm1, xmm1
orpd xmm1, xmm2
movzx eax, byte [edi + 0x49b8a9]
movzx ecx, byte [edi + 0x49b8ab]
movq xmm2, qword [esp + ecx*8 + 0xc0]
movq xmm4, qword [esp + eax*8 + 0xc0]
punpcklqdq xmm4, xmm2
paddq xmm4, xmm0
paddq xmm4, xmm1
movdqa xmmword [esp + 0x90], xmm4
pxor xmm5, xmm4
movdqa xmm0, xmm5
psrlq xmm0, 0x10
movsd xmm0, xmm0
psllq xmm5, 0x30
movsd xmm5, xmm5
orpd xmm5, xmm0
paddq xmm3, xmm5
movdqa xmmword [esp + 0xb0], xmm3
pxor xmm1, xmm3
movdqa xmm0, xmm1
psrlq xmm0, 0x3f
movsd xmm0, xmm0
psllq xmm1, 1
movsd xmm1, xmm1
orpd xmm1, xmm0
movd xmm0, ebx
movd xmm2, esi
punpckldq xmm2, xmm0
movzx eax, byte [edi + 0x49b8ac]
movq xmm7, qword [esp + eax*8 + 0xc0]
punpcklqdq xmm7, xmm2
movaps xmm0, xmmword [esp + 0x30]
unpcklps xmm0, xmmword [esp + 0xa0]
movss xmm4, dword [esp + 0x8c]
movaps xmmword [esp + 0x60], xmm4
movss xmm3, dword [esp + 0x20]
movaps xmm2, xmm3
unpcklps xmm2, xmm4
movlhps xmm0, xmm2
movaps xmmword [esp + 0x30], xmm0
mov esi, dword [esp + 8]
xor esi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
xor ecx, edx
mov eax, ecx
shld eax, esi, 1
shrd ecx, esi, 0x1f
movd xmm4, ecx
movd xmm2, eax
punpckldq xmm2, xmm4
movzx eax, byte [edi + 0x49b8ae]
movss xmm4, dword [esp + eax*8 + 0xc0]
movss xmm0, dword [esp + eax*8 + 0xc4]
movlhps xmm0, xmm4
movdqa xmm4, xmm2
shufps xmm4, xmm0, 0x24
paddq xmm4, xmm7
paddq xmm4, xmmword [esp + 0x30]
pxor xmm6, xmm4
movdqa xmm0, xmm6
psrlq xmm0, 0x20
movsd xmm0, xmm0
psllq xmm6, 0x20
movsd xmm6, xmm6
orpd xmm6, xmm0
movd xmm0, dword [esp + 0x1c]
movd xmm7, dword [esp + 0x18]
punpckldq xmm7, xmm0
punpcklqdq xmm7, xmmword [esp + 0x50]
movaps xmm0, xmmword [esp + 0x60]
movlhps xmm0, xmm3
movdqa xmm3, xmmword [esp + 0xb0]
shufps xmm2, xmm0, 0x24
paddq xmm7, xmm6
xorps xmm2, xmm7
movaps xmm0, xmm2
psrlq xmm0, 0x18
movsd xmm0, xmm0
psllq xmm2, 0x28
movsd xmm2, xmm2
orpd xmm2, xmm0
movzx eax, byte [edi + 0x49b8ad]
movzx ecx, byte [edi + 0x49b8af]
movsd xmm0, qword [esp + ecx*8 + 0xc0]
movaps xmmword [esp + 0x40], xmm0
movq xmm0, qword [esp + eax*8 + 0xc0]
punpcklqdq xmm0, xmmword [esp + 0x40]
paddq xmm0, xmm4
paddq xmm0, xmm2
pxor xmm6, xmm0
movdqa xmm4, xmm6
psrlq xmm4, 0x10
movsd xmm4, xmm4
psllq xmm6, 0x30
movsd xmm6, xmm6
orpd xmm6, xmm4
movapd xmmword [esp + 0x50], xmm6
paddq xmm7, xmm6
pxor xmm2, xmm7
pshufd xmm4, xmm2, 0x55
movd eax, xmm4
pshufd xmm4, xmm2, 0xee
movd edx, xmm4
movd ebx, xmm2
pshufd xmm2, xmm2, 0xff
movd ecx, xmm2
pshufd xmm2, xmm7, 0x55
mov esi, eax
shld esi, ebx, 1
mov dword [esp + 0xc], esi
shld ebx, eax, 1
mov dword [esp + 0x24], ebx
mov ebx, ecx
shld ebx, edx, 1
shld edx, ecx, 1
movd dword [esp + 0x1c], xmm2
pshufd xmm2, xmm3, 0xff
movd dword [esp + 0x40], xmm2
pshufd xmm2, xmm3, 0xee
movd dword [esp + 0x14], xmm2
pshufd xmm2, xmm5, 0x55
movd dword [esp + 0x60], xmm2
pshufd xmm2, xmm5, 0xff
movd dword [esp + 0x28], xmm5
pshufd xmm4, xmm5, 0xee
movd dword [esp + 0x30], xmm2
movdqa xmm5, xmmword [esp + 0x90]
pshufd xmm2, xmm5, 0x55
movd dword [esp + 8], xmm4
pshufd xmm4, xmm0, 0xff
movd eax, xmm2
pshufd xmm2, xmm0, 0xee
movd dword [esp + 0xa0], xmm4
movapd xmm6, xmm1
unpcklpd xmm6, xmm0
movd dword [esp + 0x2c], xmm2
movdqa xmm2, xmm5
punpckhqdq xmm2, xmm1
movdqa xmm4, xmm7
shufps xmm4, xmm3, 0x4e
movd dword [esp + 0x18], xmm7
movd ecx, xmm5
movdqa xmm5, xmm2
add edi, 0x10
mov dword [esp + 0x10], edi
jne 0x4373ee
mov dword [esp + 0x160], edx
mov dword [esp + 0x164], ebx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1a4], eax
movaps xmm4, xmmword [esp + 0x90]
movaps xmm2, xmm4
shufps xmm2, xmm0, 0x4e
movups xmmword [esp + 0x148], xmm2
movdqa xmmword [esp + 0x180], xmm7
movdqu xmmword [esp + 0x168], xmm1
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esp + 0x1a8], xmm0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1bc], eax
movdqa xmmword [esp + 0x190], xmm3
shufps xmm7, xmm4, 0xe4
movss xmm0, dword [esp + 0x188]
movss xmm1, dword [esp + 0x18c]
movlhps xmm1, xmm0
shufps xmm4, xmm1, 0x24
mov ecx, dword [esp + 0x7c]
movups xmm0, xmmword [ecx]
xorps xmm0, xmm4
xorps xmm0, xmm7
movups xmmword [ecx], xmm0
xor eax, eax
movups xmm0, xmmword [esp + eax*8 + 0x150]
movups xmm1, xmmword [esp + eax*8 + 0x190]
xorps xmm1, xmm0
movups xmm0, xmmword [ecx + eax*8 + 0x10]
xorps xmm0, xmm1
movups xmmword [ecx + eax*8 + 0x10], xmm0
add eax, 2
cmp eax, 6
jne 0x437b75
mov esi, 0x80
lea eax, [esp + 0x140]
push esi
push eax
call fcn.0046d0f4
add esp, 8
lea eax, [esp + 0xc0]
push esi
push eax
call fcn.0046d0f4
add esp, 8
mov ecx, dword [esp + 0x1c8]
xor ecx, ebp
call fcn.00475526
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret