Function at 0x412340
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
mov eax, 0xff
push esi
mov esi, edx
push ebx
and esp, 0xfffffff0
sub esp, 0x350
mov edx, dword [ebp + 8]
mov dword [esp + 0x1e0], ecx
mov ecx, dword [ebp + 0xc]
cmp eax, edx
mov eax, 0
mov dword [esp + 0x1e8], edx
sbb eax, ecx
mov dword [esp + 0x1ec], ecx
jae 0x412f97
movdqu xmm0, xmmword [edi]
mov ebx, ecx
mov ecx, edx
mov eax, esi
movdqu xmm5, xmmword [edi + 0x20]
pshufd xmm6, xmm0, 0x55
movups xmmword [esp + 0xf0], xmm6
movups xmmword [esp + 0x1d0], xmm6
pshufd xmm6, xmm0, 0xaa
movups xmmword [esp + 0xe0], xmm6
movups xmmword [esp + 0x1c0], xmm6
pshufd xmm6, xmm0, 0xff
movups xmmword [esp + 0xd0], xmm6
movups xmmword [esp + 0x1b0], xmm6
pshufd xmm6, xmm0, 0
movdqu xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0xc0], xmm6
movups xmmword [esp + 0x1a0], xmm6
pshufd xmm6, xmm0, 0xaa
movups xmmword [esp + 0xb0], xmm6
movups xmmword [esp + 0x190], xmm6
pshufd xmm6, xmm0, 0xff
movups xmmword [esp + 0xa0], xmm6
movups xmmword [esp + 0x180], xmm6
pshufd xmm6, xmm0, 0
movups xmmword [esp + 0x90], xmm6
movups xmmword [esp + 0x170], xmm6
pshufd xmm6, xmm0, 0x55
movups xmmword [esp + 0x80], xmm6
movups xmmword [esp + 0x160], xmm6
pshufd xmm6, xmm5, 0xff
movups xmmword [esp + 0x70], xmm6
movups xmmword [esp + 0x150], xmm6
pshufd xmm6, xmm5, 0x55
pshufd xmm5, xmm5, 0xaa
movups xmmword [esp + 0x50], xmm5
movups xmmword [esp + 0x130], xmm5
movdqu xmm5, xmmword [edi + 0x30]
movups xmmword [esp + 0x60], xmm6
movups xmmword [esp + 0x140], xmm6
pshufd xmm6, xmm5, 0
pshufd xmm5, xmm5, 0xaa
movups xmmword [esp + 0x30], xmm5
movups xmmword [esp + 0x110], xmm5
movdqu xmm5, xmmword [edi + 0x30]
movups xmmword [esp + 0x40], xmm6
movups xmmword [esp + 0x120], xmm6
pshufd xmm6, xmm5, 0xff
movups xmmword [esp + 0x20], xmm6
movups xmmword [esp + 0x100], xmm6
mov edx, dword [esp + 0x1e0]
mov dword [esp + 0x1e4], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x260], ecx
mov dword [esp + 0x264], ebx
lea esi, [esi]
mov edi, dword [esp + 0x1e4]
movdqu xmm2, xmmword [0x512300]
movdqu xmm3, xmmword [esp + 0x1a0]
movdqu xmm7, xmmword [esp + 0x1d0]
mov ecx, dword [edi + 0x20]
mov ebx, dword [edi + 0x34]
movd xmm0, ecx
add ecx, 4
movd xmm6, ebx
adc ebx, 0
mov dword [edi + 0x20], ecx
mov ecx, 0xa
punpckldq xmm0, xmm6
punpcklqdq xmm0, xmm0
paddq xmm2, xmm0
mov dword [edi + 0x34], ebx
paddq xmm0, xmmword [0x512310]
movdqu xmm6, xmmword [esp + 0x150]
movdqa xmm1, xmm0
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
movdqa xmm5, xmm1
movups xmmword [esp + 0x270], xmm6
punpckhdq xmm1, xmm0
punpckldq xmm5, xmm0
movdqa xmm2, xmm5
movups xmmword [esp + 0x200], xmm5
movdqa xmm4, xmm1
movdqu xmm5, xmmword [esp + 0x130]
movups xmmword [esp + 0x1f0], xmm1
movdqa xmm0, xmm2
movdqu xmm6, xmmword [esp + 0x100]
movups xmmword [esp + 0x280], xmm5
movdqu xmm5, xmmword [esp + 0x1b0]
movups xmmword [esp + 0x220], xmm6
movdqu xmm6, xmmword [esp + 0x180]
movups xmmword [esp + 0x2d0], xmm5
movdqu xmm5, xmmword [esp + 0x110]
movups xmmword [esp + 0x2e0], xmm6
movdqu xmm6, xmmword [esp + 0x190]
movups xmmword [esp + 0x2a0], xmm5
movdqu xmm5, xmmword [esp + 0x1c0]
movups xmmword [esp + 0x290], xmm6
movdqu xmm1, xmmword [esp + 0x140]
movups xmmword [esp + 0x2f0], xmm5
movdqu xmm5, xmmword [esp + 0x160]
movdqu xmm6, xmmword [esp + 0x170]
movups xmmword [esp + 0x300], xmm5
movdqu xmm5, xmmword [esp + 0x120]
movups xmmword [esp + 0x2c0], xmm3
mov esi, dword [esp + 0x260]
movdqa xmm3, xmm4
mov edi, dword [esp + 0x264]
movups xmmword [esp + 0x2b0], xmm7
movdqu xmm2, xmmword [esp + 0x2a0]
nop
movdqu xmm4, xmmword [esp + 0x2c0]
sub ecx, 1
paddd xmm4, xmm6
movdqa xmm7, xmm4
psrld xmm4, 0x19
pslld xmm7, 7
pxor xmm7, xmm4
pxor xmm7, xmm5
movups xmmword [esp + 0x260], xmm7
movdqu xmm4, xmmword [esp + 0x2b0]
paddd xmm4, xmmword [esp + 0x300]
movdqa xmm5, xmm4
psrld xmm4, 0x19
pslld xmm5, 7
pxor xmm5, xmm4
pxor xmm5, xmm3
movups xmmword [esp + 0x250], xmm5
movdqu xmm3, xmmword [esp + 0x2c0]
paddd xmm3, xmm7
movdqu xmm7, xmmword [esp + 0x290]
movdqa xmm4, xmm3
psrld xmm3, 0x17
pslld xmm4, 9
pxor xmm4, xmm3
pxor xmm4, xmm0
movdqu xmm0, xmmword [esp + 0x2b0]
paddd xmm0, xmm5
movdqu xmm5, xmmword [esp + 0x2f0]
movdqa xmm3, xmm0
psrld xmm0, 0x17
pslld xmm3, 9
pxor xmm3, xmm0
movdqa xmm0, xmm4
pxor xmm3, xmm1
paddd xmm0, xmmword [esp + 0x260]
movups xmmword [esp + 0x2a0], xmm3
movdqa xmm3, xmm4
movdqa xmm1, xmm0
psrld xmm0, 0x13
movups xmmword [esp + 0x210], xmm3
pslld xmm1, 0xd
pxor xmm1, xmm6
pxor xmm1, xmm0
movups xmmword [esp + 0x240], xmm1
movdqu xmm6, xmmword [esp + 0x2a0]
movdqa xmm0, xmm6
paddd xmm0, xmmword [esp + 0x250]
movdqa xmm4, xmm0
psrld xmm0, 0x13
pslld xmm4, 0xd
pxor xmm4, xmmword [esp + 0x300]
pxor xmm4, xmm0
movdqa xmm0, xmm3
paddd xmm0, xmmword [esp + 0x240]
movdqu xmm3, xmmword [esp + 0x2d0]
movdqa xmm1, xmm0
psrld xmm0, 0xe
pslld xmm1, 0x12
pxor xmm1, xmmword [esp + 0x2c0]
pxor xmm1, xmm0
movdqa xmm0, xmm6
paddd xmm0, xmm4
movups xmmword [esp + 0x2c0], xmm1
movdqa xmm1, xmm0
psrld xmm0, 0xe
pslld xmm1, 0x12
pxor xmm1, xmmword [esp + 0x2b0]
pxor xmm1, xmm0
movdqa xmm0, xmm5
paddd xmm0, xmm7
movups xmmword [esp + 0x2b0], xmm1
movdqa xmm5, xmm3
movdqa xmm6, xmm0
psrld xmm0, 0x19
pslld xmm6, 7
movdqa xmm1, xmm6
pxor xmm1, xmm0
movdqa xmm6, xmm1
pxor xmm6, xmm2
movups xmmword [esp + 0x230], xmm6
movdqu xmm2, xmmword [esp + 0x2e0]
paddd xmm2, xmm3
movdqa xmm1, xmm2
movdqa xmm0, xmm2
movdqu xmm2, xmmword [esp + 0x2f0]
psrld xmm1, 0x19
paddd xmm2, xmm6
pslld xmm0, 7
pxor xmm0, xmm1
movdqa xmm1, xmm2
pslld xmm2, 9
pxor xmm0, xmmword [esp + 0x220]
paddd xmm5, xmm0
psrld xmm1, 0x17
movdqa xmm3, xmm5
pslld xmm5, 9
pxor xmm2, xmm1
pxor xmm2, xmmword [esp + 0x280]
movdqa xmm1, xmm5
psrld xmm3, 0x17
movdqa xmm5, xmm6
paddd xmm5, xmm2
pxor xmm1, xmm3
pxor xmm1, xmmword [esp + 0x270]
movdqa xmm6, xmm1
movdqa xmm3, xmm5
paddd xmm6, xmm0
pslld xmm5, 0xd
psrld xmm3, 0x13
pxor xmm5, xmm7
pxor xmm5, xmm3
movdqa xmm3, xmm6
psrld xmm6, 0x13
pslld xmm3, 0xd
pxor xmm3, xmmword [esp + 0x2e0]
pxor xmm3, xmm6
movdqa xmm6, xmm2
paddd xmm6, xmm5
movdqa xmm7, xmm6
psrld xmm6, 0xe
pslld xmm7, 0x12
pxor xmm7, xmmword [esp + 0x2f0]
pxor xmm7, xmm6
movdqu xmm6, xmmword [esp + 0x2c0]
movups xmmword [esp + 0x2f0], xmm7
paddd xmm6, xmm0
movdqa xmm7, xmm6
psrld xmm6, 0x19
pslld xmm7, 7
pxor xmm7, xmm6
movdqa xmm6, xmm7
pxor xmm6, xmm4
movdqa xmm4, xmm1
movups xmmword [esp + 0x300], xmm6
movdqu xmm7, xmmword [esp + 0x260]
paddd xmm4, xmm3
movdqa xmm6, xmm4
psrld xmm4, 0xe
pslld xmm6, 0x12
pxor xmm6, xmmword [esp + 0x2d0]
pxor xmm6, xmm4
movdqu xmm4, xmmword [esp + 0x2b0]
movups xmmword [esp + 0x2d0], xmm6
paddd xmm4, xmm7
movdqa xmm6, xmm4
psrld xmm4, 0x19
pslld xmm6, 7
pxor xmm6, xmm4
movdqa xmm4, xmm6
movdqu xmm6, xmmword [esp + 0x2c0]
pxor xmm4, xmm5
movups xmmword [esp + 0x290], xmm4
movdqu xmm4, xmmword [esp + 0x300]
paddd xmm4, xmm6
movdqa xmm5, xmm4
psrld xmm4, 0x17
pslld xmm5, 9
pxor xmm5, xmm4
pxor xmm5, xmm2
movups xmmword [esp + 0x280], xmm5
movdqu xmm2, xmmword [esp + 0x2b0]
movdqu xmm5, xmmword [esp + 0x290]
paddd xmm2, xmm5
movdqa xmm4, xmm2
psrld xmm2, 0x17
pslld xmm4, 9
pxor xmm4, xmm2
movdqa xmm2, xmm4
movdqu xmm4, xmmword [esp + 0x280]
pxor xmm2, xmm1
movups xmmword [esp + 0x270], xmm2
movdqu xmm1, xmmword [esp + 0x300]
paddd xmm1, xmm4
movdqa xmm2, xmm1
psrld xmm1, 0x13
pslld xmm2, 0xd
pxor xmm2, xmm1
movdqa xmm1, xmm2
movdqu xmm2, xmmword [esp + 0x270]
pxor xmm1, xmm0
movups xmmword [esp + 0x220], xmm1
movdqa xmm0, xmm2
paddd xmm0, xmm5
movdqa xmm5, xmm0
psrld xmm0, 0x13
pslld xmm5, 0xd
pxor xmm5, xmm0
movdqa xmm0, xmm1
pxor xmm5, xmm7
movdqu xmm7, xmmword [esp + 0x250]
paddd xmm0, xmm4
movdqu xmm4, xmmword [esp + 0x2f0]
movdqa xmm1, xmm0
psrld xmm0, 0xe
pslld xmm1, 0x12
pxor xmm1, xmm0
movdqa xmm0, xmm2
pxor xmm1, xmm6
movups xmmword [esp + 0x2c0], xmm1
movdqu xmm2, xmmword [esp + 0x2d0]
paddd xmm0, xmm5
movdqa xmm1, xmm0
psrld xmm0, 0xe
pslld xmm1, 0x12
pxor xmm1, xmm0
movdqa xmm0, xmm4
pxor xmm1, xmmword [esp + 0x2b0]
movups xmmword [esp + 0x2b0], xmm1
paddd xmm0, xmm7
movdqa xmm1, xmm0
psrld xmm0, 0x19
pslld xmm1, 7
pxor xmm1, xmm0
pxor xmm1, xmm3
movdqa xmm3, xmm2
movdqu xmm0, xmmword [esp + 0x230]
movups xmmword [esp + 0x2e0], xmm1
paddd xmm0, xmm2
movdqa xmm6, xmm0
psrld xmm0, 0x19
pslld xmm6, 7
pxor xmm6, xmm0
movdqu xmm0, xmmword [esp + 0x2f0]
pxor xmm6, xmmword [esp + 0x240]
paddd xmm3, xmm6
movdqa xmm2, xmm3
pslld xmm3, 9
paddd xmm0, xmm1
psrld xmm2, 0x17
movdqa xmm1, xmm0
pslld xmm0, 9
psrld xmm1, 0x17
pxor xmm0, xmm1
movdqa xmm1, xmm3
pxor xmm0, xmmword [esp + 0x210]
pxor xmm1, xmm2
movdqu xmm2, xmmword [esp + 0x2e0]
pxor xmm1, xmmword [esp + 0x2a0]
paddd xmm2, xmm0
movdqa xmm3, xmm2
psrld xmm2, 0x13
pslld xmm3, 0xd
pxor xmm3, xmm2
pxor xmm3, xmm7
movdqa xmm7, xmm1
paddd xmm7, xmm6
movdqa xmm4, xmm7
movdqa xmm2, xmm7
movdqa xmm7, xmm3
psrld xmm4, 0x13
paddd xmm7, xmm0
pslld xmm2, 0xd
pxor xmm2, xmm4
movdqa xmm4, xmm7
pslld xmm7, 0x12
pxor xmm2, xmmword [esp + 0x230]
psrld xmm4, 0xe
pxor xmm7, xmm4
pxor xmm7, xmmword [esp + 0x2f0]
movups xmmword [esp + 0x2f0], xmm7
movdqa xmm7, xmm2
paddd xmm7, xmm1
movdqa xmm4, xmm7
pslld xmm7, 0x12
psrld xmm4, 0xe
pxor xmm7, xmm4
pxor xmm7, xmmword [esp + 0x2d0]
movups xmmword [esp + 0x2d0], xmm7
jne 0x412640
movups xmmword [esp + 0x250], xmm3
paddd xmm5, xmmword [esp + 0x40]
add esi, 0xffffff00
mov ebx, 0xff
movdqu xmm3, xmmword [esp + 0x2c0]
movups xmmword [esp + 0x2a0], xmm2
adc edi, 0xffffffff
paddd xmm3, xmmword [esp + 0xc0]
movdqu xmm4, xmmword [esp + 0x300]
movups xmmword [esp + 0x260], xmm1
paddd xmm4, xmmword [esp + 0x80]
add edx, 0x100
movdqa xmm2, xmm3
mov dword [esp + 0x2c0], ecx
add eax, 0x100
movdqu xmm7, xmmword [esp + 0x2b0]
movups xmmword [esp + 0x300], xmm4
punpckldq xmm2, xmm4
movdqa xmm4, xmm2
movdqu xmm2, xmmword [esp + 0x220]
paddd xmm2, xmmword [esp + 0x20]
movups xmmword [esp + 0x2b0], xmm0
punpckhdq xmm3, xmmword [esp + 0x300]
paddd xmm7, xmmword [esp + 0xf0]
movdqa xmm1, xmm2
movdqu xmm2, xmmword [esp + 0x280]
paddd xmm2, xmmword [esp + 0x50]
movdqa xmm0, xmm2
punpckldq xmm2, xmm1
movups xmmword [esp + 0x300], xmm2
movdqa xmm2, xmm4
punpckhqdq xmm2, xmmword [esp + 0x300]
punpckhdq xmm0, xmm1
movdqa xmm1, xmm4
movdqa xmm4, xmm3
punpcklqdq xmm4, xmm0
punpckhqdq xmm3, xmm0
movdqu xmm0, xmmword [eax - 0x100]
punpcklqdq xmm1, xmmword [esp + 0x300]
pxor xmm0, xmm1
movups xmmword [edx - 0x100], xmm0
movdqa xmm1, xmm5
movdqu xmm0, xmmword [eax - 0xc0]
punpckldq xmm5, xmm7
pxor xmm0, xmm2
movups xmmword [edx - 0xc0], xmm0
movdqu xmm2, xmmword [eax - 0x80]
pxor xmm2, xmm4
movups xmmword [edx - 0x80], xmm2
movdqu xmm2, xmmword [eax - 0x40]
pxor xmm2, xmm3
movdqa xmm3, xmm7
movups xmmword [edx - 0x40], xmm2
movdqa xmm2, xmm5
movdqu xmm7, xmmword [esp + 0x270]
paddd xmm7, xmmword [esp + 0x70]
punpckhdq xmm1, xmm3
movdqa xmm0, xmm7
movdqu xmm7, xmmword [esp + 0x290]
paddd xmm7, xmmword [esp + 0xb0]
movdqa xmm4, xmm7
punpckhdq xmm7, xmm0
punpckldq xmm4, xmm0
punpckhqdq xmm5, xmm4
movdqa xmm3, xmm5
punpcklqdq xmm2, xmm4
movdqu xmm5, xmmword [eax - 0xf0]
movdqa xmm0, xmm2
movdqa xmm4, xmm1
punpckhqdq xmm1, xmm7
punpcklqdq xmm4, xmm7
movdqu xmm7, xmmword [esp + 0x2e0]
paddd xmm7, xmmword [esp + 0xa0]
pxor xmm0, xmm5
movups xmmword [edx - 0xf0], xmm0
movdqu xmm5, xmmword [eax - 0xb0]
pxor xmm5, xmm3
movups xmmword [edx - 0xb0], xmm5
movdqu xmm5, xmmword [eax - 0x70]
movdqu xmm3, xmmword [esp + 0x2f0]
paddd xmm3, xmmword [esp + 0xe0]
pxor xmm5, xmm4
movups xmmword [edx - 0x70], xmm5
movdqu xmm5, xmmword [eax - 0x30]
movdqa xmm4, xmm3
punpckhdq xmm3, xmm7
pxor xmm5, xmm1
movups xmmword [edx - 0x30], xmm5
punpckldq xmm4, xmm7
movdqu xmm5, xmmword [esp + 0x1f0]
paddd xmm5, xmmword [esp + 0x250]
movdqu xmm7, xmmword [eax - 0xe0]
movdqa xmm0, xmm5
movdqu xmm5, xmmword [esp + 0x200]
paddd xmm5, xmmword [esp + 0x2b0]
movdqa xmm1, xmm5
punpckldq xmm5, xmm0
punpckhdq xmm1, xmm0
movdqa xmm0, xmm5
punpckhqdq xmm5, xmm4
punpcklqdq xmm0, xmm4
pxor xmm0, xmm7
movups xmmword [edx - 0xe0], xmm0
movdqa xmm4, xmm1
movdqu xmm0, xmmword [eax - 0xa0]
punpcklqdq xmm4, xmm3
punpckhqdq xmm1, xmm3
movdqu xmm7, xmmword [esp + 0x260]
paddd xmm7, xmmword [esp + 0x60]
pxor xmm0, xmm5
movups xmmword [edx - 0xa0], xmm0
movdqu xmm0, xmmword [eax - 0x60]
pxor xmm0, xmm4
movups xmmword [edx - 0x60], xmm0
movdqu xmm0, xmmword [eax - 0x20]
movdqu xmm4, xmmword [esp + 0x2d0]
paddd xmm4, xmmword [esp + 0xd0]
pxor xmm0, xmm1
movups xmmword [edx - 0x20], xmm0
movdqu xmm1, xmmword [esp + 0x2a0]
paddd xmm1, xmmword [esp + 0x30]
movdqu xmm0, xmmword [esp + 0x90]
movdqa xmm5, xmm1
punpckhdq xmm1, xmm4
paddd xmm0, xmm6
punpckldq xmm5, xmm4
movdqa xmm3, xmm0
punpckhdq xmm0, xmm7
movdqa xmm4, xmm0
punpckhqdq xmm0, xmm1
punpcklqdq xmm4, xmm1
movdqu xmm1, xmmword [eax - 0xd0]
punpckldq xmm3, xmm7
movdqa xmm2, xmm3
punpcklqdq xmm2, xmm5
punpckhqdq xmm3, xmm5
mov dword [esp + 0x260], esi
pxor xmm1, xmm2
movups xmmword [edx - 0xd0], xmm1
movdqu xmm1, xmmword [eax - 0x90]
mov dword [esp + 0x264], edi
pxor xmm1, xmm3
movups xmmword [edx - 0x90], xmm1
movdqu xmm1, xmmword [eax - 0x50]
pxor xmm1, xmm4
movups xmmword [edx - 0x50], xmm1
movdqu xmm5, xmmword [eax - 0x10]
pxor xmm0, xmm5
movups xmmword [edx - 0x10], xmm0
cmp ebx, esi
mov ebx, dword [esp + 0x2c0]
sbb ebx, edi
jb 0x4124d8
mov ecx, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x1ec]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x1e4]
mov eax, ecx
add eax, 0xffffff00
mov edx, ebx
adc edx, 0xffffffff
and ecx, 0xff
xor ebx, ebx
shrd eax, edx, 8
mov dword [esp + 0x1e8], ecx
add eax, 1
mov dword [esp + 0x1ec], ebx
shl eax, 8
add dword [esp + 0x1e0], eax
add esi, eax
mov edx, dword [esp + 0x1e8]
mov eax, 0x3f
mov ecx, dword [esp + 0x1ec]
cmp eax, edx
mov eax, 0
sbb eax, ecx
jae 0x413a56
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x2f0], edi
add eax, 0xffffffc0
adc edx, 0xffffffff
shrd eax, edx, 6
add eax, 1
shl eax, 6
mov edx, eax
lea eax, [esi + eax]
mov dword [esp + 0x290], edx
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x2f0]
movdqu xmm6, xmmword [eax + 0x20]
movdqu xmm2, xmmword [eax + 0x30]
movdqu xmm3, xmmword [eax]
movups xmmword [esp + 0x2b0], xmm6
movdqu xmm5, xmmword [eax + 0x10]
movdqa xmm1, xmm2
movups xmmword [esp + 0x2d0], xmm2
mov eax, 5
movdqa xmm2, xmm6
movups xmmword [esp + 0x2c0], xmm3
movdqa xmm6, xmm3
movups xmmword [esp + 0x2e0], xmm5
lea esi, [esi]
movdqa xmm0, xmm6
sub eax, 1
paddd xmm0, xmm5
movdqa xmm3, xmm0
psrld xmm0, 0x19
pslld xmm3, 7
pxor xmm3, xmm0
pxor xmm3, xmm1
movdqa xmm4, xmm3
pshufd xmm0, xmm3, 0x93
paddd xmm4, xmm6
movdqa xmm1, xmm4
psrld xmm4, 0x17
pslld xmm1, 9
pxor xmm1, xmm4
movdqa xmm4, xmm3
pxor xmm1, xmm2
pshufd xmm2, xmm1, 0x4e
paddd xmm4, xmm1
movdqa xmm3, xmm4
psrld xmm4, 0x13
pslld xmm3, 0xd
pxor xmm3, xmm5
pxor xmm3, xmm4
paddd xmm1, xmm3
pshufd xmm3, xmm3, 0x39
movdqa xmm4, xmm1
psrld xmm1, 0xe
pslld xmm4, 0x12
pxor xmm6, xmm4
pxor xmm6, xmm1
movdqa xmm1, xmm0
paddd xmm1, xmm6
movdqa xmm4, xmm1
psrld xmm1, 0x19
pslld xmm4, 7
pxor xmm3, xmm4
pxor xmm3, xmm1
movdqa xmm4, xmm3
pshufd xmm1, xmm3, 0x93
paddd xmm4, xmm6
movdqa xmm5, xmm4
psrld xmm4, 0x17
pslld xmm5, 9
pxor xmm2, xmm5
pxor xmm2, xmm4
paddd xmm3, xmm2
pshufd xmm5, xmm2, 0x4e
movdqa xmm7, xmm3
psrld xmm3, 0x13
movdqa xmm4, xmm3
pslld xmm7, 0xd
movdqa xmm3, xmm0
pxor xmm3, xmm7
pxor xmm3, xmm4
paddd xmm2, xmm3
movdqa xmm4, xmm2
psrld xmm2, 0xe
movdqa xmm0, xmm2
pslld xmm4, 0x12
pshufd xmm2, xmm3, 0x39
pxor xmm4, xmm0
movdqa xmm0, xmm1
pxor xmm4, xmm6
paddd xmm0, xmm4
movdqa xmm3, xmm0
psrld xmm0, 0x19
pslld xmm3, 7
pxor xmm2, xmm3
pxor xmm2, xmm0
movdqa xmm0, xmm2
pshufd xmm7, xmm2, 0x93
paddd xmm0, xmm4
movdqa xmm3, xmm0
psrld xmm0, 0x17
pslld xmm3, 9
pxor xmm5, xmm3
pxor xmm5, xmm0
paddd xmm2, xmm5
pshufd xmm3, xmm5, 0x4e
movdqa xmm0, xmm2
psrld xmm2, 0x13
pslld xmm0, 0xd
pxor xmm1, xmm0
pxor xmm1, xmm2
paddd xmm5, xmm1
movdqa xmm2, xmm7
movdqa xmm0, xmm5
psrld xmm5, 0xe
pshufd xmm1, xmm1, 0x39
pslld xmm0, 0x12
pxor xmm0, xmm5
pxor xmm0, xmm4
paddd xmm2, xmm0
movdqa xmm4, xmm2
psrld xmm2, 0x19
pslld xmm4, 7
pxor xmm1, xmm4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pshufd xmm5, xmm1, 0x93
paddd xmm2, xmm0
movups xmmword [esp + 0x300], xmm5
movdqa xmm4, xmm2
psrld xmm2, 0x17
pslld xmm4, 9
pxor xmm3, xmm4
pxor xmm3, xmm2
paddd xmm1, xmm3
pshufd xmm4, xmm3, 0x4e
movdqa xmm6, xmm1
psrld xmm1, 0x13
movdqa xmm2, xmm4
pslld xmm6, 0xd
pxor xmm7, xmm6
pxor xmm7, xmm1
paddd xmm3, xmm7
pshufd xmm7, xmm7, 0x39
movdqa xmm6, xmm3
psrld xmm3, 0xe
movdqa xmm1, xmm7
pslld xmm6, 0x12
pxor xmm6, xmm3
pxor xmm6, xmm0
jne 0x413040
movdqu xmm3, xmmword [esp + 0x2c0]
movdqa xmm0, xmm6
paddd xmm5, xmmword [esp + 0x2e0]
movdqu xmm6, xmmword [esp + 0x2b0]
movdqu xmm1, xmmword [esp + 0x2d0]
paddd xmm0, xmm3
movd ebx, xmm5
pshufd xmm5, xmm5, 0x39
paddd xmm4, xmm6
xor ebx, dword [esi + 0x30]
movd edi, xmm0
pshufd xmm0, xmm0, 0x39
paddd xmm1, xmm7
xor edi, dword [esi]
movd edx, xmm4
pshufd xmm4, xmm4, 0x39
xor edx, dword [esi + 0x20]
movd eax, xmm1
pshufd xmm1, xmm1, 0x39
xor eax, dword [esi + 0x10]
mov dword [ecx + 0x30], ebx
movd ebx, xmm5
pshufd xmm5, xmm5, 0x39
mov dword [ecx], edi
movd edi, xmm0
pshufd xmm0, xmm0, 0x39
mov dword [ecx + 0x20], edx
movd edx, xmm4
pshufd xmm4, xmm4, 0x39
mov dword [ecx + 0x10], eax
movd eax, xmm1
xor ebx, dword [esi + 4]
pshufd xmm1, xmm1, 0x39
xor edx, dword [esi + 0x34]
xor eax, dword [esi + 0x24]
xor edi, dword [esi + 0x14]
mov dword [ecx + 4], ebx
movd ebx, xmm5
pshufd xmm5, xmm5, 0x39
mov dword [ecx + 0x34], edx
movd edx, xmm4
pshufd xmm4, xmm4, 0x39
mov dword [ecx + 0x24], eax
movd eax, xmm1
pshufd xmm1, xmm1, 0x39
mov dword [ecx + 0x14], edi
movd edi, xmm0
xor ebx, dword [esi + 0x18]
pshufd xmm0, xmm0, 0x39
xor edx, dword [esi + 8]
xor eax, dword [esi + 0x38]
xor edi, dword [esi + 0x28]
mov dword [ecx + 0x18], ebx
movd ebx, xmm5
mov dword [ecx + 8], edx
movd edx, xmm4
mov dword [ecx + 0x38], eax
movd eax, xmm1
mov dword [ecx + 0x28], edi
movd edi, xmm0
xor edi, dword [esi + 0x3c]
xor eax, dword [esi + 0xc]
xor ebx, dword [esi + 0x2c]
xor edx, dword [esi + 0x1c]
mov dword [ecx + 0x3c], edi
mov edi, dword [esp + 0x2f0]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x2c], ebx
mov dword [ecx + 0x1c], edx
mov eax, dword [edi + 0x20]
mov dword [esp + 0x300], eax
add eax, 1
cmp eax, 1
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x2a0]
adc dword [edi + 0x34], 0
add esi, 0x40
add ecx, 0x40
cmp esi, eax
jne 0x412fee
mov edx, dword [esp + 0x290]
mov dword [esp + 0x1ec], 0
add dword [esp + 0x1e0], edx
and dword [esp + 0x1e8], 0x3f
mov ebx, dword [esp + 0x1e8]
mov esi, dword [esp + 0x1ec]
mov eax, ebx
or eax, esi
je 0x4137b9
movdqu xmm3, xmmword [edi + 0x30]
mov eax, 5
movdqu xmm6, xmmword [edi]
movdqu xmm5, xmmword [edi + 0x10]
movdqa xmm1, xmm3
movups xmmword [esp + 0x2c0], xmm3
movdqu xmm2, xmmword [edi + 0x20]
movups xmmword [esp + 0x2d0], xmm6
movups xmmword [esp + 0x2f0], xmm5
movups xmmword [esp + 0x2e0], xmm2
lea esi, [esi]
nop
movdqa xmm3, xmm6
sub eax, 1
paddd xmm3, xmm5
movdqa xmm0, xmm3
psrld xmm3, 0x19
pslld xmm0, 7
pxor xmm0, xmm3
pxor xmm0, xmm1
movdqa xmm4, xmm0
pshufd xmm3, xmm0, 0x93
paddd xmm4, xmm6
movdqa xmm1, xmm4
psrld xmm4, 0x17
pslld xmm1, 9
pxor xmm1, xmm4
movdqa xmm4, xmm0
pxor xmm1, xmm2
pshufd xmm2, xmm1, 0x4e
paddd xmm4, xmm1
movdqa xmm0, xmm4
psrld xmm4, 0x13
pslld xmm0, 0xd
pxor xmm0, xmm5
pxor xmm0, xmm4
paddd xmm1, xmm0
pshufd xmm0, xmm0, 0x39
movdqa xmm5, xmm1
psrld xmm1, 0xe
pslld xmm5, 0x12
pxor xmm5, xmm6
pxor xmm5, xmm1
movdqa xmm1, xmm3
paddd xmm1, xmm5
movdqa xmm4, xmm1
psrld xmm1, 0x19
pslld xmm4, 7
pxor xmm0, xmm4
pxor xmm0, xmm1
movdqa xmm4, xmm0
pshufd xmm1, xmm0, 0x93
paddd xmm4, xmm5
movdqa xmm6, xmm4
psrld xmm4, 0x17
pslld xmm6, 9
pxor xmm2, xmm6
pxor xmm2, xmm4
paddd xmm0, xmm2
pshufd xmm4, xmm2, 0x4e
movdqa xmm7, xmm0
movdqa xmm6, xmm0
movdqa xmm0, xmm3
pslld xmm7, 0xd
psrld xmm6, 0x13
pxor xmm0, xmm7
pxor xmm0, xmm6
paddd xmm2, xmm0
pshufd xmm0, xmm0, 0x39
movdqa xmm3, xmm2
psrld xmm2, 0xe
pslld xmm3, 0x12
pxor xmm2, xmm3
movdqa xmm3, xmm1
pxor xmm2, xmm5
paddd xmm3, xmm2
movdqa xmm5, xmm3
psrld xmm3, 0x19
pslld xmm5, 7
pxor xmm0, xmm5
pxor xmm0, xmm3
movdqa xmm3, xmm0
pshufd xmm6, xmm0, 0x93
paddd xmm3, xmm2
movdqa xmm5, xmm3
psrld xmm3, 0x17
pslld xmm5, 9
pxor xmm4, xmm5
pxor xmm4, xmm3
paddd xmm0, xmm4
pshufd xmm3, xmm4, 0x4e
movdqa xmm5, xmm0
psrld xmm0, 0x13
pslld xmm5, 0xd
pxor xmm1, xmm5
pxor xmm1, xmm0
paddd xmm4, xmm1
pshufd xmm1, xmm1, 0x39
movdqa xmm0, xmm4
psrld xmm4, 0xe
pslld xmm0, 0x12
pxor xmm0, xmm4
pxor xmm0, xmm2
movdqa xmm2, xmm6
paddd xmm2, xmm0
movdqa xmm4, xmm2
psrld xmm2, 0x19
pslld xmm4, 7
pxor xmm1, xmm4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pshufd xmm5, xmm1, 0x93
paddd xmm2, xmm0
movups xmmword [esp + 0x300], xmm5
movdqa xmm4, xmm2
psrld xmm2, 0x17
pslld xmm4, 9
pxor xmm3, xmm4
pxor xmm3, xmm2
paddd xmm1, xmm3
pshufd xmm4, xmm3, 0x4e
movdqa xmm7, xmm1
psrld xmm1, 0x13
movdqa xmm2, xmm4
pslld xmm7, 0xd
pxor xmm6, xmm7
pxor xmm1, xmm6
paddd xmm3, xmm1
pshufd xmm7, xmm1, 0x39
movdqa xmm6, xmm3
psrld xmm3, 0xe
movdqa xmm1, xmm7
pslld xmm6, 0x12
pxor xmm6, xmm3
pxor xmm6, xmm0
jne 0x413420
mov ecx, dword [esp + 0x1e8]
movdqa xmm0, xmm6
mov edx, 2
mov esi, eax
mov ebx, dword [esp + 0x1ec]
paddd xmm5, xmmword [esp + 0x2f0]
paddd xmm4, xmmword [esp + 0x2e0]
movdqu xmm3, xmmword [esp + 0x2c0]
movdqu xmm6, xmmword [esp + 0x2d0]
pshufd xmm2, xmm4, 0x39
movd dword [esp + 0x340], xmm5
movd dword [esp + 0x330], xmm4
add ecx, 0xffffffff
paddd xmm7, xmm3
pshufd xmm4, xmm2, 0x39
adc ebx, 0xffffffff
cmp edx, ecx
paddd xmm0, xmm6
pshufd xmm1, xmm7, 0x39
sbb esi, ebx
pshufd xmm6, xmm0, 0x39
pshufd xmm3, xmm5, 0x39
movd dword [esp + 0x310], xmm0
pshufd xmm5, xmm3, 0x39
pshufd xmm0, xmm1, 0x39
movd dword [esp + 0x320], xmm7
pshufd xmm7, xmm6, 0x39
movd dword [esp + 0x324], xmm6
pshufd xmm6, xmm7, 0x39
movd dword [esp + 0x314], xmm3
pshufd xmm3, xmm5, 0x39
movd dword [esp + 0x344], xmm2
pshufd xmm2, xmm4, 0x39
movd dword [esp + 0x334], xmm1
pshufd xmm1, xmm0, 0x39
movd dword [esp + 0x338], xmm7
movd dword [esp + 0x328], xmm5
movd dword [esp + 0x318], xmm4
movd dword [esp + 0x348], xmm0
movd dword [esp + 0x34c], xmm6
movd dword [esp + 0x33c], xmm3
movd dword [esp + 0x32c], xmm2
movd dword [esp + 0x31c], xmm1
jae 0x413778
mov esi, dword [esp + 0x2a0]
mov edi, dword [esp + 0x1e0]
add esi, 1
mov edx, edi
sub edx, esi
cmp edx, 0xe
ja 0x4137c1
mov ebx, dword [esp + 0x1e8]
lea edx, [esp + 0x310]
mov esi, dword [esp + 0x2a0]
mov edi, dword [esp + 0x1e0]
lea esi, [esi]
movzx ecx, byte [edx + eax]
xor cl, byte [esi + eax]
mov byte [edi + eax], cl
add eax, 1
cmp eax, ebx
jne 0x413798
mov dword [esp + 4], 0x40
mov dword [esp], edx
call fcn.00408e00
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0xe
cmp edx, ecx
mov edx, eax
sbb edx, ebx
jae 0x413a62
mov edx, dword [esp + 0x1ec]
mov eax, dword [esp + 0x1e8]
movdqu xmm0, xmmword [esp + 0x310]
shrd eax, edx, 4
shr edx, 4
mov ebx, eax
mov eax, dword [esp + 0x2a0]
mov ecx, ebx
xor ecx, 1
or ecx, edx
movdqu xmm5, xmmword [eax]
movups xmmword [esp + 0x300], xmm5
pxor xmm0, xmm5
mov dword [esp + 0x300], ebx
movups xmmword [edi], xmm0
mov dword [esp + 0x304], edx
je 0x413878
mov edx, dword [esp + 0x300]
mov ebx, eax
mov ecx, dword [esp + 0x304]
movdqu xmm5, xmmword [eax + 0x10]
movdqu xmm0, xmmword [esp + 0x320]
mov eax, edx
movups xmmword [esp + 0x2f0], xmm5
xor eax, 3
pxor xmm0, xmm5
movups xmmword [edi + 0x10], xmm0
or eax, ecx
jne 0x413878
movdqu xmm5, xmmword [ebx + 0x20]
movdqu xmm0, xmmword [esp + 0x330]
movups xmmword [esp + 0x300], xmm5
pxor xmm0, xmm5
movups xmmword [edi + 0x20], xmm0
mov edx, dword [esp + 0x1e8]
xor ebx, ebx
mov ecx, dword [esp + 0x1ec]
mov esi, edx
and edx, 0xf
and esi, 0xfffffff0
or edx, ebx
mov edi, ecx
lea edx, [esp + 0x310]
mov eax, esi
je 0x4137a9
mov edx, dword [esp + 0x1e8]
mov ecx, dword [esp + 0x1ec]
sub edx, esi
sbb ecx, edi
mov dword [esp + 0x2f0], edx
mov ebx, ecx
mov dword [esp + 0x2f4], ecx
mov ecx, edx
mov edx, 2
add ecx, 0xffffffff
adc ebx, 0xffffffff
cmp edx, ecx
mov edx, 0
sbb edx, ebx
lea edx, [esp + 0x310]
jae 0x4139a1
mov ecx, dword [esp + 0x2f4]
mov edx, dword [esp + 0x2f0]
mov ebx, dword [esp + 0x2a0]
shrd edx, ecx, 2
shr ecx, 2
mov dword [esp + 0x304], ecx
mov ecx, dword [esp + 0x1e0]
add ebx, esi
mov dword [esp + 0x300], edx
lea edx, [esp + 0x310]
lea edi, [edx + esi]
mov dword [esp + 0x2e0], edi
mov edi, dword [edi]
add esi, ecx
mov ecx, dword [ebx]
xor ecx, edi
mov edi, dword [esp + 0x304]
mov dword [esi], ecx
mov ecx, dword [esp + 0x300]
xor ecx, 1
or ecx, edi
je 0x413984
mov edi, dword [esp + 0x2e0]
mov ecx, dword [ebx + 4]
mov edi, dword [edi + 4]
xor ecx, edi
mov edi, dword [esp + 0x304]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x300]
xor ecx, 2
or ecx, edi
je 0x413984
mov edi, dword [esp + 0x2e0]
mov ecx, dword [ebx + 8]
mov ebx, dword [edi + 8]
xor ecx, ebx
mov dword [esi + 8], ecx
mov esi, dword [esp + 0x2f0]
xor edi, edi
mov ecx, esi
and esi, 3
and ecx, 0xfffffffc
add eax, ecx
mov ecx, esi
or ecx, edi
je 0x4137a9
mov edi, dword [esp + 0x2a0]
lea esi, [eax + 1]
mov dword [esp + 0x304], 0
mov ebx, dword [esp + 0x1e0]
mov dword [esp + 0x300], esi
movzx ecx, byte [edi + eax]
xor cl, byte [esp + eax + 0x310]
mov byte [ebx + eax], cl
mov ecx, dword [esp + 0x1e8]
cmp esi, ecx
mov ecx, dword [esp + 0x304]
sbb ecx, dword [esp + 0x1ec]
jae 0x4137a9
movzx ecx, byte [edi + eax + 1]
lea esi, [eax + 2]
mov dword [esp + 0x304], 0
xor cl, byte [esp + eax + 0x311]
mov dword [esp + 0x300], esi
mov byte [ebx + eax + 1], cl
mov ecx, dword [esp + 0x1e8]
cmp esi, ecx
mov ecx, dword [esp + 0x304]
sbb ecx, dword [esp + 0x1ec]
jae 0x4137a9
movzx ecx, byte [edi + eax + 2]
xor cl, byte [esp + eax + 0x312]
mov byte [ebx + eax + 2], cl
mov dword [esp + 4], 0x40
mov dword [esp], edx
call fcn.00408e00
jmp 0x4137b9
mov dword [esp + 0x2a0], esi
jmp 0x4133c7
mov esi, dword [esp + 0x1ec]
mov ebx, dword [esp + 0x1e8]
mov dword [esp + 0x2f4], esi
xor esi, esi
mov dword [esp + 0x2f0], ebx
jmp 0x4138e8