Function at 0x414f60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x3e0
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x1c], ecx
mov ecx, 0xff
cmp ecx, ebx
mov ecx, 0
mov dword [esp + 0x200], ebx
sbb ecx, esi
mov dword [esp + 0x204], esi
jae 0x415af4
movd xmm5, dword [eax]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0xf0], xmm5
movups xmmword [esp + 0x1d0], xmm5
movd xmm5, dword [eax + 4]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0xe0], xmm5
movups xmmword [esp + 0x1c0], xmm5
movd xmm5, dword [eax + 8]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0xd0], xmm5
movups xmmword [esp + 0x1b0], xmm5
movd xmm5, dword [eax + 0xc]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0xc0], xmm5
movups xmmword [esp + 0x1a0], xmm5
movd xmm5, dword [eax + 0x10]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0xb0], xmm5
movups xmmword [esp + 0x190], xmm5
movd xmm5, dword [eax + 0x14]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0xa0], xmm5
movups xmmword [esp + 0x180], xmm5
movd xmm5, dword [eax + 0x18]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0x90], xmm5
movups xmmword [esp + 0x170], xmm5
movd xmm5, dword [eax + 0x1c]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0x80], xmm5
movups xmmword [esp + 0x160], xmm5
movd xmm5, dword [eax + 0x20]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0x70], xmm5
movups xmmword [esp + 0x150], xmm5
movd xmm5, dword [eax + 0x24]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0x60], xmm5
movups xmmword [esp + 0x140], xmm5
movd xmm5, dword [eax + 0x28]
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0x50], xmm5
movups xmmword [esp + 0x130], xmm5
movd xmm5, dword [eax + 0x2c]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x20c], esi
mov esi, edx
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0x40], xmm5
movups xmmword [esp + 0x120], xmm5
movd xmm5, dword [eax + 0x38]
mov dword [esp + 0x208], ebx
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0x30], xmm5
movups xmmword [esp + 0x110], xmm5
movd xmm5, dword [eax + 0x3c]
mov dword [esp + 0x18], edx
pshufd xmm5, xmm5, 0
movups xmmword [esp + 0x20], xmm5
movups xmmword [esp + 0x100], xmm5
movdqu xmm5, xmmword [0x512370]
movups xmmword [esp + 0x380], xmm5
movdqu xmm5, xmmword [0x512380]
movups xmmword [esp + 0x390], xmm5
lea esi, [esi]
movd xmm5, dword [eax + 0x34]
mov edx, 0xa
movd xmm0, dword [eax + 0x30]
movdqu xmm2, xmmword [0x512350]
punpckldq xmm0, xmm5
punpcklqdq xmm0, xmm0
mov ecx, dword [eax + 0x30]
paddq xmm2, xmm0
mov ebx, dword [eax + 0x34]
paddq xmm0, xmmword [0x512360]
movdqa xmm1, xmm0
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
movdqa xmm5, xmm1
add ecx, 4
punpckhdq xmm1, xmm0
punpckldq xmm5, xmm0
adc ebx, 0
movups xmmword [esp + 0x1f0], xmm5
movups xmmword [esp + 0x310], xmm5
movdqu xmm5, xmmword [esp + 0x120]
movups xmmword [esp + 0x1e0], xmm1
movups xmmword [esp + 0x290], xmm5
movdqu xmm5, xmmword [esp + 0x100]
movups xmmword [esp + 0x300], xmm1
movdqu xmm1, xmmword [esp + 0x140]
movups xmmword [esp + 0x2b0], xmm5
movdqu xmm5, xmmword [esp + 0x160]
mov dword [eax + 0x30], ecx
movups xmmword [esp + 0x2c0], xmm5
movdqu xmm5, xmmword [esp + 0x1a0]
mov dword [eax + 0x34], ebx
movups xmmword [esp + 0x320], xmm5
movdqu xmm5, xmmword [esp + 0x130]
movups xmmword [esp + 0x2a0], xmm5
movdqu xmm5, xmmword [esp + 0x110]
movups xmmword [esp + 0x2f0], xmm5
movdqu xmm5, xmmword [esp + 0x170]
movups xmmword [esp + 0x2d0], xmm5
movdqu xmm5, xmmword [esp + 0x1b0]
movups xmmword [esp + 0x330], xmm5
movdqu xmm5, xmmword [esp + 0x180]
movups xmmword [esp + 0x2e0], xmm5
movdqu xmm5, xmmword [esp + 0x1c0]
movups xmmword [esp + 0x350], xmm5
movdqu xmm3, xmmword [esp + 0x150]
movdqu xmm2, xmmword [esp + 0x190]
movdqu xmm5, xmmword [esp + 0x1d0]
movups xmmword [esp + 0x360], xmm3
movdqa xmm3, xmm2
movups xmmword [esp + 0x370], xmm5
lea esi, [esi]
nop
movdqu xmm2, xmmword [esp + 0x370]
sub edx, 1
movdqu xmm6, xmmword [esp + 0x380]
movdqu xmm0, xmmword [esp + 0x310]
paddd xmm2, xmm3
movdqu xmm4, xmmword [esp + 0x360]
movdqu xmm7, xmmword [esp + 0x390]
pxor xmm0, xmm2
pshufb xmm0, xmm6
paddd xmm4, xmm0
pxor xmm3, xmm4
movdqa xmm5, xmm3
pslld xmm3, 0xc
psrld xmm5, 0x14
por xmm3, xmm5
paddd xmm2, xmm3
movups xmmword [esp + 0x370], xmm2
pxor xmm0, xmmword [esp + 0x370]
movdqa xmm5, xmm0
pshufb xmm5, xmm7
movups xmmword [esp + 0x310], xmm5
paddd xmm4, xmmword [esp + 0x310]
movdqa xmm5, xmm6
movups xmmword [esp + 0x360], xmm4
pxor xmm3, xmmword [esp + 0x360]
movdqa xmm0, xmm3
pslld xmm3, 7
movdqu xmm4, xmmword [esp + 0x2e0]
psrld xmm0, 0x19
por xmm3, xmm0
movups xmmword [esp + 0x280], xmm3
movdqu xmm3, xmmword [esp + 0x350]
movdqu xmm0, xmmword [esp + 0x300]
paddd xmm3, xmm4
pxor xmm0, xmm3
pshufb xmm0, xmm6
movdqa xmm6, xmm4
paddd xmm1, xmm0
pxor xmm6, xmm1
movdqa xmm2, xmm6
psrld xmm6, 0x14
pslld xmm2, 0xc
por xmm2, xmm6
movdqa xmm6, xmm3
paddd xmm6, xmm2
movups xmmword [esp + 0x350], xmm6
movdqa xmm6, xmm7
pxor xmm0, xmmword [esp + 0x350]
movdqa xmm3, xmm0
pshufb xmm3, xmm7
movdqa xmm7, xmm1
movups xmmword [esp + 0x300], xmm3
paddd xmm7, xmmword [esp + 0x300]
movdqu xmm1, xmmword [esp + 0x2d0]
movups xmmword [esp + 0x340], xmm7
movdqa xmm7, xmm5
pxor xmm2, xmmword [esp + 0x340]
movdqa xmm0, xmm2
psrld xmm0, 0x19
pslld xmm2, 7
por xmm2, xmm0
movdqu xmm0, xmmword [esp + 0x330]
paddd xmm0, xmm1
movdqa xmm3, xmm0
movdqu xmm0, xmmword [esp + 0x2f0]
pxor xmm0, xmm3
pshufb xmm0, xmm5
movdqu xmm5, xmmword [esp + 0x2a0]
paddd xmm5, xmm0
pxor xmm1, xmm5
movdqa xmm4, xmm1
pslld xmm1, 0xc
psrld xmm4, 0x14
por xmm1, xmm4
paddd xmm3, xmm1
movups xmmword [esp + 0x330], xmm3
pxor xmm0, xmmword [esp + 0x330]
movdqa xmm4, xmm0
pshufb xmm4, xmm6
movups xmmword [esp + 0x2f0], xmm4
paddd xmm5, xmmword [esp + 0x2f0]
movdqu xmm4, xmmword [esp + 0x320]
pxor xmm1, xmm5
movdqa xmm0, xmm1
pslld xmm1, 7
psrld xmm0, 0x19
por xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x2c0]
paddd xmm4, xmm0
movdqa xmm6, xmm4
movdqu xmm4, xmmword [esp + 0x2b0]
pxor xmm4, xmm6
movdqa xmm3, xmm4
movdqu xmm4, xmmword [esp + 0x290]
pshufb xmm3, xmm7
paddd xmm4, xmm3
pxor xmm0, xmm4
movdqa xmm7, xmm0
pslld xmm0, 0xc
psrld xmm7, 0x14
por xmm0, xmm7
paddd xmm6, xmm0
movups xmmword [esp + 0x320], xmm6
pxor xmm3, xmmword [esp + 0x320]
pshufb xmm3, xmmword [esp + 0x390]
paddd xmm4, xmm3
pxor xmm0, xmm4
movdqa xmm7, xmm0
pslld xmm0, 7
psrld xmm7, 0x19
por xmm0, xmm7
movdqa xmm6, xmm0
movdqu xmm0, xmmword [esp + 0x370]
paddd xmm0, xmm2
pxor xmm3, xmm0
pshufb xmm3, xmmword [esp + 0x380]
paddd xmm5, xmm3
pxor xmm2, xmm5
movdqa xmm7, xmm2
pslld xmm2, 0xc
psrld xmm7, 0x14
por xmm2, xmm7
paddd xmm0, xmm2
movdqu xmm7, xmmword [esp + 0x390]
movups xmmword [esp + 0x270], xmm0
pxor xmm3, xmm0
movups xmmword [esp + 0x370], xmm0
movdqa xmm0, xmm3
pshufb xmm0, xmm7
paddd xmm5, xmm0
movups xmmword [esp + 0x240], xmm0
pxor xmm2, xmm5
movups xmmword [esp + 0x2b0], xmm0
movdqa xmm0, xmm2
pslld xmm2, 7
psrld xmm0, 0x19
movups xmmword [esp + 0x260], xmm5
por xmm2, xmm0
movups xmmword [esp + 0x2e0], xmm2
movdqu xmm2, xmmword [esp + 0x350]
movdqu xmm0, xmmword [esp + 0x310]
movups xmmword [esp + 0x2a0], xmm5
movdqu xmm5, xmmword [esp + 0x380]
paddd xmm2, xmm1
pxor xmm0, xmm2
pshufb xmm0, xmm5
paddd xmm4, xmm0
pxor xmm1, xmm4
movdqa xmm3, xmm1
pslld xmm1, 0xc
psrld xmm3, 0x14
por xmm1, xmm3
paddd xmm2, xmm1
movdqa xmm3, xmm5
movups xmmword [esp + 0x220], xmm2
pxor xmm0, xmm2
movups xmmword [esp + 0x350], xmm2
movdqa xmm2, xmm0
movdqa xmm0, xmm4
pshufb xmm2, xmm7
paddd xmm0, xmm2
movups xmmword [esp + 0x230], xmm2
pxor xmm1, xmm0
movups xmmword [esp + 0x310], xmm2
movdqa xmm2, xmm1
pslld xmm1, 7
psrld xmm2, 0x19
movups xmmword [esp + 0x250], xmm0
movups xmmword [esp + 0x290], xmm0
movdqa xmm0, xmm2
movdqa xmm2, xmm1
movdqu xmm1, xmmword [esp + 0x300]
por xmm2, xmm0
movups xmmword [esp + 0x2d0], xmm2
movdqu xmm0, xmmword [esp + 0x330]
paddd xmm0, xmm6
pxor xmm1, xmm0
pshufb xmm1, xmm5
movdqu xmm5, xmmword [esp + 0x360]
paddd xmm5, xmm1
pxor xmm6, xmm5
movdqa xmm2, xmm6
pslld xmm6, 0xc
psrld xmm2, 0x14
por xmm6, xmm2
paddd xmm0, xmm6
pxor xmm1, xmm0
movdqa xmm2, xmm1
movups xmmword [esp + 0x210], xmm0
pshufb xmm2, xmm7
paddd xmm5, xmm2
movups xmmword [esp + 0x330], xmm0
movdqa xmm0, xmm7
pxor xmm6, xmm5
movdqa xmm1, xmm6
pslld xmm6, 7
movups xmmword [esp + 0x300], xmm2
psrld xmm1, 0x19
movups xmmword [esp + 0x360], xmm5
por xmm6, xmm1
movups xmmword [esp + 0x2c0], xmm6
movdqu xmm4, xmmword [esp + 0x320]
movdqu xmm1, xmmword [esp + 0x280]
movdqu xmm6, xmmword [esp + 0x340]
paddd xmm4, xmm1
movdqa xmm7, xmm4
movdqu xmm4, xmmword [esp + 0x2f0]
pxor xmm4, xmm7
pshufb xmm4, xmm3
movdqa xmm3, xmm1
paddd xmm6, xmm4
pxor xmm3, xmm6
movdqa xmm1, xmm3
pslld xmm3, 0xc
psrld xmm1, 0x14
por xmm3, xmm1
paddd xmm7, xmm3
pxor xmm4, xmm7
pshufb xmm4, xmm0
paddd xmm6, xmm4
movups xmmword [esp + 0x320], xmm7
pxor xmm3, xmm6
movdqa xmm0, xmm3
pslld xmm3, 7
movdqa xmm1, xmm6
psrld xmm0, 0x19
movups xmmword [esp + 0x2f0], xmm4
por xmm3, xmm0
jne 0x415290
movups xmmword [esp + 0x360], xmm2
movdqa xmm2, xmm3
movdqu xmm3, xmmword [esp + 0x270]
paddd xmm3, xmmword [esp + 0xf0]
paddd xmm7, xmmword [esp + 0xc0]
movups xmmword [esp + 0x370], xmm5
paddd xmm2, xmmword [esp + 0xb0]
mov ecx, 0xff
movdqu xmm5, xmmword [esp + 0x220]
movups xmmword [esp + 0x350], xmm4
paddd xmm5, xmmword [esp + 0xe0]
movdqa xmm4, xmm3
movdqu xmm0, xmmword [esp + 0x210]
movdqa xmm1, xmm7
paddd xmm0, xmmword [esp + 0xd0]
punpckldq xmm4, xmm5
punpckhdq xmm3, xmm5
movdqa xmm5, xmm3
movdqa xmm7, xmm0
punpckhdq xmm0, xmm1
punpcklqdq xmm5, xmm0
punpckhqdq xmm3, xmm0
movdqu xmm0, xmmword [esi]
punpckldq xmm7, xmm1
movdqa xmm1, xmm4
punpckhqdq xmm4, xmm7
punpcklqdq xmm1, xmm7
pxor xmm0, xmm1
movups xmmword [edi], xmm0
movdqu xmm0, xmmword [esi + 0x40]
movdqu xmm1, xmmword [esp + 0x2d0]
paddd xmm1, xmmword [esp + 0x90]
pxor xmm0, xmm4
movups xmmword [edi + 0x40], xmm0
movdqu xmm0, xmmword [esi + 0x80]
movdqa xmm7, xmm1
pxor xmm0, xmm5
movups xmmword [edi + 0x80], xmm0
movdqa xmm5, xmm2
movdqu xmm0, xmmword [esi + 0xc0]
pxor xmm0, xmm3
movups xmmword [edi + 0xc0], xmm0
movdqu xmm3, xmmword [esp + 0x2e0]
paddd xmm3, xmmword [esp + 0xa0]
movdqu xmm0, xmmword [esp + 0x2c0]
paddd xmm0, xmmword [esp + 0x80]
punpckldq xmm5, xmm3
punpckhdq xmm2, xmm3
movdqa xmm3, xmm5
punpckldq xmm7, xmm0
punpckhdq xmm1, xmm0
movdqa xmm0, xmm5
punpckhqdq xmm3, xmm7
punpcklqdq xmm0, xmm7
movdqa xmm7, xmm2
punpckhqdq xmm2, xmm1
punpcklqdq xmm7, xmm1
movdqa xmm4, xmm7
movdqu xmm7, xmmword [esi + 0x10]
pxor xmm0, xmm7
movups xmmword [edi + 0x10], xmm0
movdqu xmm0, xmmword [esi + 0x50]
pxor xmm0, xmm3
movups xmmword [edi + 0x50], xmm0
movdqu xmm0, xmmword [esi + 0x90]
pxor xmm0, xmm4
movups xmmword [edi + 0x90], xmm0
movdqu xmm0, xmmword [esi + 0xd0]
pxor xmm0, xmm2
movups xmmword [edi + 0xd0], xmm0
movdqu xmm1, xmmword [esp + 0x370]
paddd xmm1, xmmword [esp + 0x70]
movdqu xmm0, xmmword [esp + 0x260]
paddd xmm6, xmmword [esp + 0x60]
paddd xmm0, xmmword [esp + 0x50]
movdqu xmm3, xmmword [esp + 0x250]
movdqa xmm5, xmm1
paddd xmm3, xmmword [esp + 0x40]
punpckldq xmm5, xmm6
movdqa xmm2, xmm5
movdqa xmm5, xmm0
punpckhdq xmm1, xmm6
punpckldq xmm5, xmm3
punpckhdq xmm0, xmm3
movdqa xmm3, xmm2
punpckhqdq xmm2, xmm5
punpcklqdq xmm3, xmm5
movdqa xmm5, xmm1
punpckhqdq xmm1, xmm0
punpcklqdq xmm5, xmm0
movdqu xmm0, xmmword [esi + 0x20]
pxor xmm0, xmm3
movups xmmword [edi + 0x20], xmm0
movdqu xmm0, xmmword [esi + 0x60]
pxor xmm0, xmm2
movups xmmword [edi + 0x60], xmm0
movdqu xmm0, xmmword [esi + 0xa0]
movdqu xmm2, xmmword [esp + 0x350]
paddd xmm2, xmmword [esp + 0x30]
pxor xmm0, xmm5
movups xmmword [edi + 0xa0], xmm0
movdqu xmm0, xmmword [esi + 0xe0]
movdqu xmm5, xmmword [esp + 0x240]
paddd xmm5, xmmword [esp + 0x20]
pxor xmm0, xmm1
movups xmmword [edi + 0xe0], xmm0
movdqu xmm0, xmmword [esp + 0x1f0]
paddd xmm0, xmmword [esp + 0x230]
movdqu xmm1, xmmword [esp + 0x1e0]
movdqa xmm4, xmm5
paddd xmm1, xmmword [esp + 0x360]
movdqa xmm5, xmm2
movdqa xmm3, xmm0
punpckldq xmm5, xmm4
punpckhdq xmm2, xmm4
punpckhdq xmm0, xmm1
punpckldq xmm3, xmm1
movdqa xmm1, xmm3
punpckhqdq xmm3, xmm5
punpcklqdq xmm1, xmm5
movdqu xmm5, xmmword [esi + 0x30]
movdqa xmm4, xmm0
punpckhqdq xmm0, xmm2
punpcklqdq xmm4, xmm2
pxor xmm1, xmm5
movups xmmword [edi + 0x30], xmm1
movdqu xmm1, xmmword [esi + 0x70]
pxor xmm1, xmm3
movups xmmword [edi + 0x70], xmm1
movdqu xmm1, xmmword [esi + 0xb0]
pxor xmm1, xmm4
movups xmmword [edi + 0xb0], xmm1
movdqu xmm5, xmmword [esi + 0xf0]
pxor xmm0, xmm5
movups xmmword [edi + 0xf0], xmm0
add dword [esp + 0x208], 0xffffff00
mov ebx, dword [esp + 0x208]
adc dword [esp + 0x20c], 0xffffffff
add edi, 0x100
add esi, 0x100
cmp ecx, ebx
sbb edx, dword [esp + 0x20c]
jb 0x415130
mov esi, dword [esp + 0x200]
mov edi, dword [esp + 0x204]
mov edx, dword [esp + 0x18]
mov ecx, esi
add ecx, 0xffffff00
mov ebx, edi
adc ebx, 0xffffffff
and esi, 0xff
xor edi, edi
shrd ecx, ebx, 8
mov dword [esp + 0x200], esi
add ecx, 1
mov dword [esp + 0x204], edi
shl ecx, 8
add dword [esp + 0x1c], ecx
add edx, ecx
mov ebx, dword [esp + 0x200]
mov ecx, 0x3f
mov esi, dword [esp + 0x204]
cmp ecx, ebx
mov ecx, 0
sbb ecx, esi
jae 0x4161d0
movdqu xmm5, xmmword [0x512370]
mov ecx, ebx
mov ebx, esi
add ecx, 0xffffffc0
adc ebx, 0xffffffff
movups xmmword [esp + 0x380], xmm5
movdqu xmm5, xmmword [0x512380]
shrd ecx, ebx, 6
mov ebx, dword [esp + 0x1c]
add ecx, 1
movups xmmword [esp + 0x390], xmm5
mov edi, ecx
shl edi, 6
lea esi, [edx + edi]
mov dword [esp + 0x330], edi
movdqu xmm2, xmmword [eax + 0x10]
mov ecx, 0xa
movdqu xmm3, xmmword [eax]
movdqu xmm4, xmmword [eax + 0x20]
movdqa xmm7, xmm2
movups xmmword [esp + 0x340], xmm2
movdqu xmm1, xmmword [eax + 0x30]
movups xmmword [esp + 0x370], xmm3
movups xmmword [esp + 0x360], xmm4
movups xmmword [esp + 0x350], xmm1
lea esi, [esi]
lea esi, [esi]
movdqu xmm5, xmmword [esp + 0x380]
paddd xmm3, xmm7
sub ecx, 1
movdqu xmm6, xmmword [esp + 0x390]
pxor xmm1, xmm3
pshufb xmm1, xmm5
paddd xmm4, xmm1
pxor xmm7, xmm4
movdqa xmm0, xmm7
psrld xmm7, 0x14
pslld xmm0, 0xc
pxor xmm7, xmm0
paddd xmm3, xmm7
pxor xmm1, xmm3
pshufb xmm1, xmm6
paddd xmm4, xmm1
pshufd xmm0, xmm3, 0x93
pshufd xmm2, xmm4, 0x39
pxor xmm7, xmm4
movdqa xmm4, xmm7
psrld xmm7, 0x19
pslld xmm4, 7
pshufd xmm1, xmm1, 0x4e
pxor xmm4, xmm7
paddd xmm0, xmm4
pxor xmm1, xmm0
pshufb xmm1, xmm5
paddd xmm2, xmm1
pxor xmm4, xmm2
movdqa xmm7, xmm4
psrld xmm4, 0x14
pslld xmm7, 0xc
pxor xmm7, xmm4
paddd xmm0, xmm7
pshufd xmm5, xmm0, 0x39
pxor xmm0, xmm1
pshufb xmm0, xmm6
paddd xmm2, xmm0
pshufd xmm6, xmm2, 0x93
pxor xmm2, xmm7
movdqa xmm7, xmm2
psrld xmm2, 0x19
pslld xmm7, 7
pshufd xmm0, xmm0, 0x4e
movdqa xmm3, xmm5
movdqa xmm1, xmm0
movdqa xmm4, xmm6
pxor xmm7, xmm2
jne 0x415ba0
movdqu xmm4, xmmword [edx + 0x20]
paddd xmm6, xmmword [esp + 0x360]
paddd xmm5, xmmword [esp + 0x370]
movdqu xmm2, xmmword [esp + 0x340]
paddd xmm0, xmmword [esp + 0x350]
movdqu xmm1, xmmword [edx + 0x10]
pxor xmm6, xmm4
paddd xmm7, xmm2
movdqu xmm4, xmmword [edx + 0x30]
movdqu xmm2, xmmword [edx]
pxor xmm1, xmm7
movups xmmword [ebx + 0x20], xmm6
movups xmmword [ebx + 0x10], xmm1
pxor xmm0, xmm4
pxor xmm2, xmm5
movups xmmword [ebx + 0x30], xmm0
movups xmmword [ebx], xmm2
mov ecx, dword [eax + 0x30]
mov edi, dword [eax + 0x34]
add ecx, 1
cmp ecx, 1
movd xmm0, ecx
adc edi, 0
add edx, 0x40
add ebx, 0x40
movd xmm5, edi
punpckldq xmm0, xmm5
movq qword [eax + 0x30], xmm0
cmp edx, esi
jne 0x415b5a
mov edi, dword [esp + 0x330]
mov dword [esp + 0x370], esi
and dword [esp + 0x200], 0x3f
mov dword [esp + 0x204], 0
add dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x200]
mov ebx, dword [esp + 0x204]
mov edx, ecx
or edx, ebx
je 0x415f61
movdqu xmm5, xmmword [0x512370]
mov esi, dword [esp + 0x370]
movdqu xmm2, xmmword [eax]
movups xmmword [esp + 0x380], xmm5
movdqu xmm7, xmmword [eax + 0x10]
movdqu xmm4, xmmword [eax + 0x20]
movdqa xmm3, xmm2
movups xmmword [esp + 0x330], xmm2
movdqu xmm1, xmmword [eax + 0x30]
movups xmmword [esp + 0x360], xmm7
mov eax, 0xa
movdqu xmm5, xmmword [0x512380]
movups xmmword [esp + 0x350], xmm4
movups xmmword [esp + 0x340], xmm1
movups xmmword [esp + 0x390], xmm5
lea esi, [esi]
movdqu xmm6, xmmword [esp + 0x380]
paddd xmm3, xmm7
sub eax, 1
pxor xmm1, xmm3
movdqa xmm0, xmm1
pshufb xmm0, xmm6
paddd xmm4, xmm0
pxor xmm7, xmm4
movdqa xmm1, xmm7
psrld xmm7, 0x14
pslld xmm1, 0xc
pxor xmm7, xmm1
paddd xmm3, xmm7
pxor xmm0, xmm3
pshufd xmm5, xmm3, 0x93
pshufb xmm0, xmmword [esp + 0x390]
paddd xmm4, xmm0
pshufd xmm2, xmm4, 0x39
pxor xmm7, xmm4
movdqa xmm4, xmm7
psrld xmm7, 0x19
pslld xmm4, 7
pshufd xmm0, xmm0, 0x4e
movdqa xmm1, xmm4
pxor xmm1, xmm7
paddd xmm5, xmm1
pxor xmm0, xmm5
pshufb xmm0, xmm6
paddd xmm2, xmm0
movdqa xmm3, xmm5
pxor xmm1, xmm2
movdqa xmm7, xmm1
psrld xmm1, 0x14
pslld xmm7, 0xc
pxor xmm7, xmm1
paddd xmm3, xmm7
movdqa xmm1, xmm3
pshufd xmm5, xmm3, 0x39
movdqa xmm3, xmm5
pxor xmm0, xmm1
pshufb xmm0, xmmword [esp + 0x390]
paddd xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm6, xmm2, 0x93
pxor xmm2, xmm7
movdqa xmm7, xmm2
psrld xmm2, 0x19
pslld xmm7, 7
movdqa xmm1, xmm0
movdqa xmm4, xmm6
pxor xmm7, xmm2
jne 0x415db0
mov ecx, dword [esp + 0x200]
mov edx, 2
mov edi, eax
paddd xmm7, xmmword [esp + 0x360]
mov ebx, dword [esp + 0x204]
mov dword [esp + 0x370], esi
paddd xmm6, xmmword [esp + 0x350]
paddd xmm0, xmmword [esp + 0x340]
movdqu xmm2, xmmword [esp + 0x330]
movups xmmword [esp + 0x3b0], xmm7
movups xmmword [esp + 0x3c0], xmm6
add ecx, 0xffffffff
paddd xmm5, xmm2
movups xmmword [esp + 0x3d0], xmm0
adc ebx, 0xffffffff
cmp edx, ecx
movups xmmword [esp + 0x3a0], xmm5
sbb edi, ebx
jae 0x415f24
mov edi, esi
mov esi, dword [esp + 0x1c]
add edi, 1
mov edx, esi
sub edx, edi
cmp edx, 0xe
ja 0x415f69
mov ebx, dword [esp + 0x200]
lea edx, [esp + 0x3a0]
mov esi, dword [esp + 0x370]
mov edi, dword [esp + 0x1c]
lea esi, [esi]
movzx ecx, byte [edx + eax]
xor cl, byte [esi + eax]
mov byte [edi + eax], cl
add eax, 1
cmp ebx, eax
jne 0x415f40
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
mov edi, eax
cmp edx, ecx
sbb edi, ebx
jae 0x4161dc
mov ebx, dword [esp + 0x204]
mov ecx, dword [esp + 0x200]
mov edi, dword [esp + 0x370]
shrd ecx, ebx, 4
shr ebx, 4
mov eax, ecx
movdqu xmm0, xmmword [edi]
xor eax, 1
or eax, ebx
pxor xmm0, xmm5
movups xmmword [esi], xmm0
je 0x415fcd
mov eax, ecx
movdqu xmm0, xmmword [edi + 0x10]
xor eax, 3
or eax, ebx
pxor xmm0, xmm7
movups xmmword [esi + 0x10], xmm0
jne 0x415fcd
movdqu xmm0, xmmword [edi + 0x20]
pxor xmm0, xmm6
movups xmmword [esi + 0x20], xmm0
mov edx, dword [esp + 0x200]
mov ecx, dword [esp + 0x204]
mov ebx, edx
and edx, 0xf
and ebx, 0xfffffff0
mov dword [esp + 0x364], ecx
mov dword [esp + 0x360], ebx
mov eax, ebx
xor ebx, ebx
or edx, ebx
lea edx, [esp + 0x3a0]
je 0x415f51
mov ebx, dword [esp + 0x200]
mov edx, 2
sub ebx, dword [esp + 0x360]
mov esi, dword [esp + 0x204]
sbb esi, dword [esp + 0x364]
mov ecx, ebx
mov dword [esp + 0x380], ebx
add ecx, 0xffffffff
mov ebx, esi
mov dword [esp + 0x384], esi
adc ebx, 0xffffffff
cmp edx, ecx
mov edx, 0
sbb edx, ebx
lea edx, [esp + 0x3a0]
jae 0x416110
mov esi, dword [esp + 0x384]
lea edx, [esp + 0x3a0]
mov ebx, dword [esp + 0x380]
mov ecx, dword [esp + 0x360]
shrd ebx, esi, 2
shr esi, 2
mov dword [esp + 0x390], ebx
mov ebx, dword [esp + 0x370]
lea edi, [edx + ecx]
mov dword [esp + 0x394], esi
mov esi, dword [esp + 0x1c]
add ebx, ecx
add esi, ecx
mov dword [esp + 0x360], ebx
mov ecx, dword [ebx]
mov ebx, dword [edi]
xor ecx, ebx
mov ebx, dword [esp + 0x394]
mov dword [esi], ecx
mov ecx, dword [esp + 0x390]
xor ecx, 1
or ecx, ebx
je 0x4160f3
mov ebx, dword [esp + 0x360]
mov ecx, dword [ebx + 4]
mov ebx, dword [edi + 4]
xor ecx, ebx
mov ebx, dword [esp + 0x394]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x390]
xor ecx, 2
or ecx, ebx
je 0x4160f3
mov ebx, dword [esp + 0x360]
mov ecx, dword [ebx + 8]
mov ebx, dword [edi + 8]
xor ecx, ebx
mov dword [esi + 8], ecx
mov esi, dword [esp + 0x380]
xor edi, edi
mov ecx, esi
and esi, 3
and ecx, 0xfffffffc
add eax, ecx
mov ecx, esi
or ecx, edi
je 0x415f51
mov ebx, dword [esp + 0x370]
lea edi, [eax + 1]
mov dword [esp + 0x394], 0
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x390], edi
movzx ecx, byte [ebx + eax]
mov ebx, dword [esp + 0x200]
xor cl, byte [esp + eax + 0x3a0]
cmp edi, ebx
mov ebx, dword [esp + 0x394]
sbb ebx, dword [esp + 0x204]
mov byte [esi + eax], cl
jae 0x415f51
mov ebx, dword [esp + 0x370]
lea edi, [eax + 2]
mov dword [esp + 0x394], 0
mov dword [esp + 0x390], edi
movzx ecx, byte [ebx + eax + 1]
mov ebx, dword [esp + 0x200]
xor cl, byte [esp + eax + 0x3a1]
cmp edi, ebx
mov ebx, dword [esp + 0x394]
sbb ebx, dword [esp + 0x204]
mov byte [esi + eax + 1], cl
jae 0x415f51
mov ebx, dword [esp + 0x370]
movzx ecx, byte [ebx + eax + 2]
xor cl, byte [esp + eax + 0x3a2]
mov byte [esi + eax + 2], cl
mov dword [esp + 4], 0x40
mov dword [esp], edx
call fcn.00408e00
jmp 0x415f61
mov dword [esp + 0x370], edx
jmp 0x415d2e
mov ebx, dword [esp + 0x200]
mov dword [esp + 0x360], 0
mov esi, dword [esp + 0x204]
mov dword [esp + 0x364], 0
mov dword [esp + 0x380], ebx
mov dword [esp + 0x384], esi
jmp 0x416053