Function at 0x51c0e0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x6b5a34]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
push esi
mov esi, dword [ebx + 0x10]
push edi
mov edi, dword [ebx + 0xc]
or edi, esi
mov dword [ebp - 0x5c], edx
je 0x51cf7b
test esi, esi
jne 0x51c12d
cmp dword [ebx + 0xc], 0x100
jb 0x51cc4c
mov esi, dword [edx]
movd xmm0, esi
mov esi, dword [edx + 4]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x1c0], xmm0
movd xmm0, esi
mov esi, dword [edx + 8]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x240], xmm0
movd xmm0, esi
mov esi, dword [edx + 0xc]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x230], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x10]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x220], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x14]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x1a0], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x18]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x210], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x1c]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x170], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x20]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x1f0], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x24]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x1e0], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x28]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x200], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x2c]
movdqa xmm7, xmmword [0x675050]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x180], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x38]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x190], xmm0
movd xmm0, esi
mov esi, dword [edx + 0x3c]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x1b0], xmm0
movd xmm0, esi
lea esi, [ecx + 0xc0]
mov dword [ebp - 0x50], esi
lea esi, [eax + 0xc0]
mov dword [ebp - 0x4c], esi
lea esi, [ecx + 0x80]
mov dword [ebp - 0x60], esi
lea esi, [eax + 0x80]
mov dword [ebp - 0x54], esi
lea esi, [ecx + 0x40]
mov dword [ebp - 0x74], esi
lea esi, [eax + 0x40]
pshufd xmm0, xmm0, 0
movdqa xmmword [ebp - 0x1d0], xmm0
mov dword [ebp - 0x58], esi
jmp 0x51c283
mov edx, dword [ebp - 0x5c]
movdqa xmm0, xmmword [ebp - 0x1c0]
mov edi, dword [edx + 0x34]
mov edx, dword [edx + 0x30]
movdqa xmmword [ebp - 0xc0], xmm0
movdqa xmm0, xmmword [ebp - 0x240]
movdqa xmmword [ebp - 0xd0], xmm0
movdqa xmm0, xmmword [ebp - 0x230]
movdqa xmmword [ebp - 0x90], xmm0
movdqa xmm0, xmmword [ebp - 0x220]
movdqa xmmword [ebp - 0xb0], xmm0
movdqa xmm0, xmmword [ebp - 0x210]
movdqa xmmword [ebp - 0x140], xmm0
movdqa xmm0, xmmword [ebp - 0x170]
movdqa xmmword [ebp - 0x120], xmm0
movdqa xmm0, xmmword [ebp - 0x1f0]
movdqa xmm1, xmmword [ebp - 0x1a0]
movdqa xmm4, xmmword [ebp - 0x1e0]
movdqa xmm2, xmmword [ebp - 0x200]
movdqa xmmword [ebp - 0x150], xmm0
movdqa xmm0, xmmword [ebp - 0x180]
movdqa xmmword [ebp - 0x110], xmm0
movdqa xmm0, xmmword [ebp - 0x190]
movdqa xmmword [ebp - 0xa0], xmm0
movdqa xmm0, xmmword [ebp - 0x1b0]
xor esi, esi
or esi, edx
mov dword [ebp - 0x154], edi
mov edx, edi
movdqa xmmword [ebp - 0xe0], xmm0
movdqa xmm0, xmmword [ebp - 0x1d0]
xor edi, edi
or edx, edi
movdqa xmmword [ebp - 0x100], xmm0
movd xmm0, edx
movd xmm5, esi
movd xmm6, edx
movd xmm3, esi
add esi, 4
adc edx, edi
mov edi, dword [ebp - 0x5c]
mov dword [edi + 0x34], edx
punpckldq xmm6, xmm0
movdqa xmm0, xmmword [0x675060]
punpckldq xmm3, xmm5
movdqa xmm5, xmmword [0x675070]
punpckldq xmm3, xmm6
paddq xmm0, xmm3
paddq xmm5, xmm3
movdqa xmm3, xmm0
punpckldq xmm3, xmm5
punpckhdq xmm0, xmm5
movdqa xmm6, xmm3
punpckldq xmm6, xmm0
punpckhdq xmm3, xmm0
movdqa xmmword [ebp - 0x270], xmm6
movdqa xmmword [ebp - 0x260], xmm3
mov dword [edi + 0x30], esi
mov edx, 0xa
jmp 0x51c3e8
movdqa xmm4, xmmword [ebp - 0x130]
movdqa xmm5, xmmword [ebp - 0xc0]
paddd xmm5, xmm1
movdqa xmm0, xmm6
pxor xmm0, xmm5
movdqa xmm6, xmm4
pshufb xmm0, xmm7
paddd xmm6, xmm0
pxor xmm1, xmm6
movdqa xmm4, xmm1
pslld xmm4, 0xc
psrld xmm1, 0x14
por xmm4, xmm1
movdqa xmm1, xmmword [0x675080]
paddd xmm5, xmm4
pxor xmm0, xmm5
pshufb xmm0, xmm1
paddd xmm6, xmm0
pxor xmm4, xmm6
movdqa xmmword [ebp - 0x250], xmm0
movdqa xmm0, xmmword [ebp - 0xd0]
movdqa xmmword [ebp - 0xc0], xmm5
movdqa xmm5, xmm4
psrld xmm4, 0x19
movdqa xmmword [ebp - 0x130], xmm6
movdqa xmm6, xmm2
movdqa xmm1, xmm3
movdqa xmm3, xmmword [ebp - 0x120]
pslld xmm5, 7
por xmm5, xmm4
movdqa xmm4, xmmword [ebp - 0x140]
paddd xmm0, xmm4
pxor xmm1, xmm0
movdqa xmm2, xmm4
pshufb xmm1, xmm7
paddd xmm6, xmm1
pxor xmm2, xmm6
movdqa xmm4, xmm2
pslld xmm4, 0xc
psrld xmm2, 0x14
por xmm4, xmm2
movdqa xmm2, xmmword [ebp - 0xe0]
paddd xmm0, xmm4
pxor xmm1, xmm0
movdqa xmmword [ebp - 0xd0], xmm0
movdqa xmm0, xmmword [0x675080]
pshufb xmm1, xmm0
movdqa xmm0, xmmword [ebp - 0x90]
paddd xmm6, xmm1
paddd xmm0, xmm3
pxor xmm4, xmm6
pxor xmm2, xmm0
movdqa xmmword [ebp - 0xf0], xmm1
movdqa xmm1, xmmword [ebp - 0x110]
movdqa xmmword [ebp - 0x70], xmm6
movdqa xmm6, xmm4
psrld xmm4, 0x19
pshufb xmm2, xmm7
paddd xmm1, xmm2
pxor xmm3, xmm1
pslld xmm6, 7
por xmm6, xmm4
movdqa xmm4, xmm3
pslld xmm4, 0xc
psrld xmm3, 0x14
por xmm4, xmm3
movdqa xmm3, xmmword [ebp - 0x100]
paddd xmm0, xmm4
pxor xmm2, xmm0
movdqa xmmword [ebp - 0x90], xmm0
movdqa xmm0, xmmword [0x675080]
pshufb xmm2, xmm0
paddd xmm1, xmm2
pxor xmm4, xmm1
movdqa xmmword [ebp - 0x110], xmm1
movdqa xmm1, xmmword [ebp - 0xb0]
paddd xmm1, xmmword [ebp - 0x150]
movdqa xmm0, xmm4
pslld xmm0, 7
psrld xmm4, 0x19
por xmm0, xmm4
movdqa xmmword [ebp - 0xb0], xmm1
movdqa xmm4, xmmword [ebp - 0xa0]
pxor xmm3, xmm1
movdqa xmm1, xmmword [ebp - 0x150]
pshufb xmm3, xmm7
paddd xmm4, xmm3
pxor xmm1, xmm4
movdqa xmmword [ebp - 0xa0], xmm4
movdqa xmm4, xmm1
pslld xmm4, 0xc
psrld xmm1, 0x14
por xmm4, xmm1
movdqa xmm1, xmmword [ebp - 0xb0]
paddd xmm1, xmm4
pxor xmm3, xmm1
movdqa xmmword [ebp - 0xb0], xmm1
movdqa xmm1, xmmword [0x675080]
pshufb xmm3, xmm1
movdqa xmm1, xmmword [ebp - 0xa0]
paddd xmm1, xmm3
pxor xmm4, xmm1
movdqa xmmword [ebp - 0xa0], xmm1
movdqa xmm1, xmm4
psrld xmm4, 0x19
pslld xmm1, 7
por xmm1, xmm4
movdqa xmm4, xmmword [ebp - 0xc0]
paddd xmm4, xmm6
pxor xmm3, xmm4
movdqa xmmword [ebp - 0xc0], xmm4
movdqa xmm4, xmmword [ebp - 0x110]
pshufb xmm3, xmm7
paddd xmm4, xmm3
pxor xmm6, xmm4
movdqa xmmword [ebp - 0x110], xmm4
movdqa xmm4, xmm6
psrld xmm6, 0x14
pslld xmm4, 0xc
por xmm4, xmm6
movdqa xmm6, xmmword [ebp - 0xc0]
paddd xmm6, xmm4
pxor xmm3, xmm6
movdqa xmmword [ebp - 0xc0], xmm6
movdqa xmm6, xmmword [0x675080]
pshufb xmm3, xmm6
movdqa xmm6, xmmword [ebp - 0x110]
paddd xmm6, xmm3
pxor xmm4, xmm6
movdqa xmmword [ebp - 0x100], xmm3
movdqa xmm3, xmm4
psrld xmm4, 0x19
pslld xmm3, 7
por xmm3, xmm4
movdqa xmm4, xmmword [ebp - 0xa0]
movdqa xmmword [ebp - 0x110], xmm6
movdqa xmm6, xmmword [ebp - 0x250]
movdqa xmmword [ebp - 0x140], xmm3
movdqa xmm3, xmmword [ebp - 0xd0]
paddd xmm3, xmm0
pxor xmm6, xmm3
pshufb xmm6, xmm7
paddd xmm4, xmm6
pxor xmm0, xmm4
movdqa xmmword [ebp - 0xa0], xmm4
movdqa xmm4, xmm0
psrld xmm0, 0x14
pslld xmm4, 0xc
por xmm4, xmm0
movdqa xmm0, xmmword [0x675080]
paddd xmm3, xmm4
pxor xmm6, xmm3
pshufb xmm6, xmm0
movdqa xmm0, xmmword [ebp - 0xa0]
paddd xmm0, xmm6
pxor xmm4, xmm0
movdqa xmmword [ebp - 0xa0], xmm0
movdqa xmm0, xmm4
pslld xmm0, 7
psrld xmm4, 0x19
por xmm0, xmm4
movdqa xmmword [ebp - 0xd0], xmm3
movdqa xmmword [ebp - 0x120], xmm0
dec edx
movdqa xmm3, xmmword [ebp - 0x90]
movdqa xmm0, xmmword [ebp - 0xf0]
movdqa xmm4, xmmword [ebp - 0x130]
paddd xmm3, xmm1
pxor xmm0, xmm3
pshufb xmm0, xmm7
paddd xmm4, xmm0
pxor xmm1, xmm4
movdqa xmmword [ebp - 0x130], xmm4
movdqa xmm4, xmm1
pslld xmm4, 0xc
psrld xmm1, 0x14
por xmm4, xmm1
movdqa xmm1, xmmword [0x675080]
paddd xmm3, xmm4
movdqa xmmword [ebp - 0x90], xmm3
pxor xmm3, xmm0
movdqa xmm0, xmmword [ebp - 0x130]
pshufb xmm3, xmm1
movdqa xmm1, xmmword [ebp - 0x70]
paddd xmm0, xmm3
pxor xmm4, xmm0
movdqa xmmword [ebp - 0x130], xmm0
movdqa xmm0, xmm4
psrld xmm4, 0x19
pslld xmm0, 7
por xmm0, xmm4
movdqa xmmword [ebp - 0x150], xmm0
movdqa xmm0, xmmword [ebp - 0xb0]
paddd xmm0, xmm5
pxor xmm2, xmm0
pshufb xmm2, xmm7
paddd xmm1, xmm2
pxor xmm5, xmm1
movdqa xmm4, xmm5
pslld xmm4, 0xc
psrld xmm5, 0x14
por xmm4, xmm5
movdqa xmm5, xmmword [0x675080]
paddd xmm0, xmm4
pxor xmm2, xmm0
pshufb xmm2, xmm5
movdqa xmmword [ebp - 0xe0], xmm2
paddd xmm2, xmm1
pxor xmm4, xmm2
movdqa xmm1, xmm4
pslld xmm1, 7
psrld xmm4, 0x19
movdqa xmmword [ebp - 0xb0], xmm0
por xmm1, xmm4
jne 0x51c3e0
paddd xmm0, xmmword [ebp - 0x220]
movdqa xmm5, xmmword [ebp - 0xd0]
paddd xmm5, xmmword [ebp - 0x240]
movdqa xmm4, xmmword [ebp - 0xc0]
paddd xmm4, xmmword [ebp - 0x1c0]
mov edx, dword [ebp - 0x74]
movdqa xmmword [ebp - 0xc0], xmm4
mov esi, dword [ebp - 0x58]
movdqa xmmword [ebp - 0xb0], xmm0
movdqa xmm0, xmm4
mov edi, dword [ebp - 0x54]
movdqa xmmword [ebp - 0xd0], xmm5
movdqa xmm5, xmmword [ebp - 0x90]
paddd xmm5, xmmword [ebp - 0x230]
punpckldq xmm0, xmmword [ebp - 0xd0]
movdqa xmm4, xmm5
punpckldq xmm4, xmmword [ebp - 0xb0]
movdqa xmmword [ebp - 0x70], xmm4
movdqa xmm4, xmmword [ebp - 0xc0]
punpckhdq xmm4, xmmword [ebp - 0xd0]
movdqa xmmword [ebp - 0xf0], xmm4
movdqa xmmword [ebp - 0x90], xmm5
movdqu xmm5, xmmword [ecx]
movdqa xmm4, xmmword [ebp - 0x90]
punpckhdq xmm4, xmmword [ebp - 0xb0]
movdqa xmmword [ebp - 0x90], xmm4
paddd xmm1, xmmword [ebp - 0x1a0]
movdqa xmm4, xmm0
punpcklqdq xmm4, xmmword [ebp - 0x70]
punpckhqdq xmm0, xmmword [ebp - 0x70]
pxor xmm4, xmm5
movdqu xmmword [eax], xmm4
movdqu xmm4, xmmword [edx]
pxor xmm0, xmm4
movdqu xmmword [esi], xmm0
movdqa xmm0, xmmword [ebp - 0xf0]
mov esi, dword [ebp - 0x60]
movdqu xmm5, xmmword [esi]
add dword [ebp - 0x58], 0x10
movdqa xmm4, xmm0
punpcklqdq xmm4, xmmword [ebp - 0x90]
punpckhqdq xmm0, xmmword [ebp - 0x90]
pxor xmm4, xmm5
movdqa xmm5, xmmword [ebp - 0x140]
paddd xmm5, xmmword [ebp - 0x210]
movdqu xmmword [edi], xmm4
mov edi, dword [ebp - 0x50]
movdqu xmm4, xmmword [edi]
mov edi, dword [ebp - 0x4c]
pxor xmm0, xmm4
movdqa xmm4, xmmword [ebp - 0x150]
paddd xmm4, xmmword [ebp - 0x1f0]
add dword [ebp - 0x50], 0x10
add dword [ebp - 0x54], 0x10
add dword [ebp - 0x4c], 0x10
movdqu xmmword [edi], xmm0
movdqa xmm0, xmmword [ebp - 0x120]
paddd xmm0, xmmword [ebp - 0x170]
mov edi, dword [ebp - 0x58]
movdqa xmmword [ebp - 0x120], xmm0
movdqa xmmword [ebp - 0x140], xmm5
movdqa xmm0, xmm1
punpckhdq xmm1, xmmword [ebp - 0x140]
punpckldq xmm0, xmm5
movdqa xmm5, xmmword [ebp - 0x120]
punpckldq xmm5, xmm4
movdqa xmmword [ebp - 0x70], xmm5
movdqa xmm5, xmmword [ebp - 0x120]
punpckhdq xmm5, xmm4
movdqa xmm4, xmm0
punpcklqdq xmm4, xmmword [ebp - 0x70]
punpckhqdq xmm0, xmmword [ebp - 0x70]
movdqa xmmword [ebp - 0xf0], xmm5
movdqu xmm5, xmmword [ecx + 0x10]
pxor xmm4, xmm5
movdqu xmmword [eax + 0x10], xmm4
movdqu xmm4, xmmword [edx + 0x10]
pxor xmm0, xmm4
movdqu xmmword [edi], xmm0
movdqa xmm0, xmmword [ebp - 0xf0]
movdqa xmm4, xmm1
movdqu xmm5, xmmword [esi + 0x10]
mov edi, dword [ebp - 0x54]
paddd xmm2, xmmword [ebp - 0x200]
punpcklqdq xmm4, xmm0
add dword [ebp - 0x58], 0x10
pxor xmm4, xmm5
movdqu xmmword [edi], xmm4
mov edi, dword [ebp - 0x50]
movdqa xmm4, xmmword [ebp - 0x110]
paddd xmm4, xmmword [ebp - 0x180]
movdqa xmm5, xmmword [ebp - 0xa0]
paddd xmm5, xmmword [ebp - 0x190]
punpckhqdq xmm1, xmm0
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x4c]
add dword [ebp - 0x54], 0x10
pxor xmm1, xmm0
movdqu xmmword [edi], xmm1
movdqa xmm1, xmmword [ebp - 0x130]
paddd xmm1, xmmword [ebp - 0x1e0]
mov edi, dword [ebp - 0x58]
add dword [ebp - 0x50], 0x10
paddd xmm3, xmmword [ebp - 0x260]
add dword [ebp - 0x4c], 0x10
paddd xmm6, xmmword [ebp - 0x270]
add dword [ebp - 0x58], 0x10
movdqa xmmword [ebp - 0x70], xmm2
movdqa xmm0, xmm1
punpckhdq xmm1, xmmword [ebp - 0x70]
punpckldq xmm0, xmm2
movdqa xmm2, xmm4
punpckldq xmm2, xmm5
punpckhdq xmm4, xmm5
movdqu xmm5, xmmword [ecx + 0x20]
movdqa xmmword [ebp - 0xf0], xmm4
movdqa xmm4, xmm0
punpckhqdq xmm0, xmm2
punpcklqdq xmm4, xmm2
pxor xmm4, xmm5
movdqa xmm5, xmmword [ebp - 0x100]
paddd xmm5, xmmword [ebp - 0x1d0]
movdqu xmmword [eax + 0x20], xmm4
movdqu xmm2, xmmword [edx + 0x20]
pxor xmm0, xmm2
movdqu xmmword [edi], xmm0
movdqu xmm4, xmmword [esi + 0x20]
movdqa xmm0, xmmword [ebp - 0xf0]
mov edi, dword [ebp - 0x54]
add dword [ebp - 0x54], 0x10
movdqa xmm2, xmm1
punpcklqdq xmm2, xmm0
pxor xmm2, xmm4
movdqu xmmword [edi], xmm2
mov edi, dword [ebp - 0x50]
movdqa xmm2, xmmword [ebp - 0xe0]
paddd xmm2, xmmword [ebp - 0x1b0]
add dword [ebp - 0x50], 0x10
punpckhqdq xmm1, xmm0
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0x10
pxor xmm1, xmm0
movdqu xmmword [edi], xmm1
mov edi, dword [ebp - 0x58]
movdqa xmm0, xmm6
punpckldq xmm0, xmm3
punpckhdq xmm6, xmm3
movdqa xmm3, xmm0
movdqa xmm4, xmm2
punpckldq xmm4, xmm5
punpckhdq xmm2, xmm5
movdqu xmm5, xmmword [ecx + 0x30]
punpcklqdq xmm3, xmm4
pxor xmm3, xmm5
movdqu xmmword [eax + 0x30], xmm3
movdqu xmm3, xmmword [edx + 0x30]
punpckhqdq xmm0, xmm4
pxor xmm0, xmm3
movdqa xmm1, xmm6
movdqu xmmword [edi], xmm0
movdqa xmm0, xmm1
movdqu xmm3, xmmword [esi + 0x30]
add dword [ebx + 0xc], 0xffffff00
mov edi, dword [ebp - 0x54]
punpcklqdq xmm0, xmm2
adc dword [ebx + 0x10], 0xffffffff
add dword [ebp - 0x58], 0xd0
add dword [ebp - 0x54], 0xd0
pxor xmm0, xmm3
movdqu xmmword [edi], xmm0
mov edi, dword [ebp - 0x50]
movdqu xmm0, xmmword [edi]
mov edi, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xd0
add dword [ebp - 0x50], 0xd0
add esi, 0x100
mov dword [ebp - 0x60], esi
mov esi, dword [ebx + 0x10]
add edx, 0x100
punpckhqdq xmm1, xmm2
add eax, 0x100
add ecx, 0x100
pxor xmm1, xmm0
movdqu xmmword [edi], xmm1
mov dword [ebp - 0x74], edx
test esi, esi
ja 0x51c280
jb 0x51cc49
cmp dword [ebx + 0xc], 0x100
jae 0x51c280
mov edx, dword [ebp - 0x5c]
test esi, esi
jne 0x51cc5a
cmp dword [ebx + 0xc], 0x40
jb 0x51cdf3
movdqa xmm5, xmmword [0x675050]
movdqa xmm6, xmmword [0x675080]
movdqu xmm7, xmmword [edx]
movdqu xmm4, xmmword [edx + 0x10]
movdqu xmm3, xmmword [edx + 0x20]
movdqu xmm0, xmmword [edx + 0x30]
movdqa xmm2, xmm7
movdqa xmmword [ebp - 0x100], xmm4
movdqa xmmword [ebp - 0xe0], xmm3
movdqa xmmword [ebp - 0x70], xmm0
mov esi, 0xa
jmp 0x51cca0
dec esi
paddd xmm2, xmm4
pxor xmm0, xmm2
pshufb xmm0, xmm5
paddd xmm3, xmm0
pxor xmm4, xmm3
movdqa xmm1, xmm4
pslld xmm1, 0xc
psrld xmm4, 0x14
pxor xmm1, xmm4
paddd xmm2, xmm1
movdqa xmm4, xmm2
pxor xmm0, xmm4
pshufb xmm0, xmm6
paddd xmm3, xmm0
pxor xmm1, xmm3
movdqa xmm2, xmm1
psrld xmm1, 0x19
pslld xmm2, 7
pxor xmm2, xmm1
pshufd xmm4, xmm4, 0x93
paddd xmm4, xmm2
pshufd xmm0, xmm0, 0x4e
pxor xmm0, xmm4
pshufb xmm0, xmm5
pshufd xmm3, xmm3, 0x39
paddd xmm3, xmm0
pxor xmm2, xmm3
movdqa xmm1, xmm2
pslld xmm1, 0xc
psrld xmm2, 0x14
pxor xmm1, xmm2
paddd xmm4, xmm1
pxor xmm0, xmm4
pshufb xmm0, xmm6
paddd xmm3, xmm0
pshufd xmm2, xmm4, 0x39
pxor xmm1, xmm3
movdqa xmm4, xmm1
pslld xmm4, 7
psrld xmm1, 0x19
pshufd xmm0, xmm0, 0x4e
pshufd xmm3, xmm3, 0x93
pxor xmm4, xmm1
jne 0x51cca0
movdqu xmm1, xmmword [ecx + 0x10]
paddd xmm4, xmmword [ebp - 0x100]
paddd xmm3, xmmword [ebp - 0xe0]
paddd xmm0, xmmword [ebp - 0x70]
pxor xmm4, xmm1
movdqu xmm1, xmmword [ecx + 0x20]
pxor xmm3, xmm1
movdqu xmm1, xmmword [ecx + 0x30]
pxor xmm0, xmm1
movdqu xmm1, xmmword [ecx]
paddd xmm2, xmm7
pxor xmm2, xmm1
movdqu xmmword [eax], xmm2
movdqu xmmword [eax + 0x10], xmm4
movdqu xmmword [eax + 0x20], xmm3
movdqu xmmword [eax + 0x30], xmm0
mov esi, dword [edx + 0x34]
mov dword [ebp - 0x5c], esi
mov esi, dword [edx + 0x30]
inc esi
jne 0x51cdc3
inc dword [ebp - 0x5c]
add dword [ebx + 0xc], 0xffffffc0
mov dword [edx + 0x30], esi
mov esi, dword [ebp - 0x5c]
mov dword [edx + 0x34], esi
mov esi, dword [ebx + 0x10]
adc esi, 0xffffffff
add eax, 0x40
add ecx, 0x40
mov dword [ebx + 0x10], esi
test esi, esi
ja 0x51cc6a
jb 0x51ce00
cmp dword [ebx + 0xc], 0x40
jae 0x51cc6a
test esi, esi
jne 0x51ce00
cmp dword [ebx + 0xc], esi
jbe 0x51cf7b
movdqu xmm7, xmmword [edx]
movdqu xmm4, xmmword [edx + 0x10]
movdqu xmm3, xmmword [edx + 0x20]
movdqu xmm0, xmmword [edx + 0x30]
movdqa xmm5, xmmword [0x675050]
movdqa xmm6, xmmword [0x675080]
movdqa xmm2, xmm7
movdqa xmmword [ebp - 0x100], xmm4
movdqa xmmword [ebp - 0xe0], xmm3
movdqa xmmword [ebp - 0x70], xmm0
mov edx, 0xa
dec edx
paddd xmm2, xmm4
pxor xmm0, xmm2
pshufb xmm0, xmm5
paddd xmm3, xmm0
pxor xmm4, xmm3
movdqa xmm1, xmm4
pslld xmm1, 0xc
psrld xmm4, 0x14
pxor xmm1, xmm4
paddd xmm2, xmm1
movdqa xmm4, xmm2
pxor xmm0, xmm4
pshufb xmm0, xmm6
paddd xmm3, xmm0
pxor xmm1, xmm3
movdqa xmm2, xmm1
psrld xmm1, 0x19
pslld xmm2, 7
pxor xmm2, xmm1
pshufd xmm4, xmm4, 0x93
paddd xmm4, xmm2
pshufd xmm0, xmm0, 0x4e
pxor xmm0, xmm4
pshufb xmm0, xmm5
pshufd xmm3, xmm3, 0x39
paddd xmm3, xmm0
pxor xmm2, xmm3
movdqa xmm1, xmm2
pslld xmm1, 0xc
psrld xmm2, 0x14
pxor xmm1, xmm2
paddd xmm4, xmm1
pxor xmm0, xmm4
pshufb xmm0, xmm6
paddd xmm3, xmm0
pshufd xmm2, xmm4, 0x39
pxor xmm1, xmm3
movdqa xmm4, xmm1
pslld xmm4, 7
psrld xmm1, 0x19
pshufd xmm0, xmm0, 0x4e
pshufd xmm3, xmm3, 0x93
pxor xmm4, xmm1
jne 0x51ce41
paddd xmm4, xmmword [ebp - 0x100]
paddd xmm3, xmmword [ebp - 0xe0]
paddd xmm0, xmmword [ebp - 0x70]
xor edi, edi
paddd xmm2, xmm7
movdqu xmmword [ebp - 0x48], xmm2
movdqu xmmword [ebp - 0x38], xmm4
movdqu xmmword [ebp - 0x28], xmm3
movdqu xmmword [ebp - 0x18], xmm0
test esi, esi
jb 0x51cf6d
ja 0x51cf40
cmp dword [ebx + 0xc], edi
jbe 0x51cf6d
lea edx, [ebp - 0x48]
sub ecx, edx
mov dword [ebp - 0x60], ecx
sub eax, edx
jmp 0x51cf53
mov ecx, dword [ebp - 0x60]
lea edx, [ebp + edi - 0x48]
mov cl, byte [edx + ecx]
xor cl, byte [edx]
inc edi
mov byte [edx + eax], cl
xor ecx, ecx
cmp ecx, esi
jb 0x51cf50
ja 0x51cf6d
cmp edi, dword [ebx + 0xc]
jb 0x51cf50
lea edx, [ebp - 0x48]
push 0x40
push edx
call fcn.0050d2b0
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00531415
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret