Function at 0x565530
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x70
mov eax, dword [esp + 0x9c]
mov ebp, dword [esp + 0x98]
mov ecx, ebp
neg ecx
and ecx, 3
add ebp, ecx
xor edx, edx
sub eax, ecx
cmovb eax, edx
cmovb ebp, edx
cmp eax, 0x2ec
jae 0x565569
mov eax, 0xffffffff
jmp 0x5661f0
mov eax, 0xffffffd2
cmp dword [esp + 0x90], 0xff
ja 0x5661f0
mov eax, dword [esp + 0x94]
mov byte [ebp + 0x1e0], 0
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x565890
mov edx, 1
cmp eax, 0x20
jb 0x565876
mov edx, eax
and edx, 0xffffffe0
movd xmm0, ecx
pshufd xmm4, xmm0, 0
lea esi, [edx - 0x20]
mov ebx, esi
shr ebx, 5
add ebx, 1
test esi, esi
je 0x565b45
mov edi, ebx
and edi, 0xfffffffe
movdqa xmm3, xmmword [0x688480]
movdqa xmm2, xmmword [str._t_n_v_f]
movdqa xmm1, xmmword [0x6884a0]
movdqa xmm0, xmmword [0x6884b0]
xor esi, esi
movdqu xmmword [esp + 0x10], xmm4
nop word cs:[eax + eax]
nop
movdqu xmmword [esp + 0x60], xmm3
movdqu xmmword [esp + 0x30], xmm2
movdqu xmmword [esp + 0x40], xmm1
movdqu xmmword [esp + 0x50], xmm0
movdqa xmm6, xmm4
psubd xmm6, xmm3
movdqa xmm5, xmm4
psubd xmm5, xmm2
psubd xmm4, xmm1
movdqu xmm3, xmmword [esp + 0x10]
psubd xmm3, xmm0
movdqa xmm7, xmm6
movdqu xmmword [esp], xmm6
movdqa xmm0, xmmword [0x6884c0]
psubd xmm7, xmm0
movdqa xmm2, xmm3
movdqa xmm0, xmmword [0x6884d0]
pand xmm2, xmm0
movdqa xmm1, xmm4
pand xmm1, xmm0
packuswb xmm2, xmm1
movdqa xmm1, xmm5
pand xmm1, xmm0
movdqa xmm0, xmm6
pand xmm0, xmmword [0x6884d0]
packuswb xmm1, xmm0
movdqa xmm0, xmm4
movdqa xmm6, xmmword [0x6884c0]
psubd xmm0, xmm6
packuswb xmm2, xmm1
movdqa xmm1, xmm3
psubd xmm1, xmm6
movdqa xmm6, xmmword [0x6884d0]
pand xmm1, xmm6
pand xmm0, xmm6
packuswb xmm1, xmm0
movdqa xmm0, xmm5
psubd xmm0, xmmword [0x6884c0]
pand xmm0, xmm6
pand xmm7, xmm6
packuswb xmm0, xmm7
packuswb xmm1, xmm0
movdqu xmmword [ebp + esi + 0x1e1], xmm2
movdqu xmmword [ebp + esi + 0x1f1], xmm1
movdqu xmm2, xmmword [esp]
movdqa xmm0, xmmword [str.____0000____]
psubd xmm2, xmm0
movdqa xmm1, xmm4
psubd xmm1, xmm0
movdqa xmm7, xmm3
psubd xmm7, xmm0
movdqa xmm6, xmmword [0x6884d0]
pand xmm7, xmm6
pand xmm1, xmm6
packuswb xmm7, xmm1
movdqa xmm0, xmm5
psubd xmm0, xmmword [str.____0000____]
pand xmm0, xmm6
pand xmm2, xmm6
packuswb xmm0, xmm2
movdqu xmm2, xmmword [esp + 0x30]
packuswb xmm7, xmm0
movdqu xmm0, xmmword [esp + 0x50]
movdqa xmm1, xmmword [0x6884f0]
psubd xmm4, xmm1
psubd xmm3, xmm1
pand xmm3, xmm6
pand xmm4, xmm6
packuswb xmm3, xmm4
movdqu xmm4, xmmword [esp]
psubd xmm4, xmm1
psubd xmm5, xmm1
pand xmm5, xmm6
pand xmm4, xmm6
packuswb xmm5, xmm4
packuswb xmm3, xmm5
movdqu xmmword [ebp + esi + 0x201], xmm7
movdqu xmmword [ebp + esi + 0x211], xmm3
movdqu xmm3, xmmword [esp + 0x60]
movdqu xmm4, xmmword [esp + 0x10]
add esi, 0x40
movdqa xmm5, xmmword [0x688500]
paddd xmm0, xmm5
movdqu xmm1, xmmword [esp + 0x40]
paddd xmm1, xmm5
paddd xmm2, xmm5
paddd xmm3, xmm5
add edi, 0xfffffffe
jne 0x565600
test bl, 1
je 0x56586f
movdqa xmm5, xmm4
psubd xmm5, xmm3
movdqa xmm6, xmm4
movdqa xmm3, xmm4
psubd xmm3, xmm2
psubd xmm4, xmm1
psubd xmm6, xmm0
movdqa xmm0, xmm5
movdqa xmm2, xmmword [0x6884c0]
psubd xmm0, xmm2
movdqu xmmword [esp], xmm0
movdqa xmm0, xmm3
psubd xmm0, xmm2
movdqa xmm1, xmm4
psubd xmm1, xmm2
movdqa xmm7, xmm2
movdqa xmm2, xmm6
psubd xmm2, xmm7
pand xmm6, xmmword [0x6884d0]
movdqa xmm7, xmmword [0x6884d0]
pand xmm4, xmm7
packuswb xmm6, xmm4
pand xmm3, xmm7
pand xmm5, xmm7
packuswb xmm3, xmm5
packuswb xmm6, xmm3
pand xmm2, xmm7
pand xmm1, xmm7
packuswb xmm2, xmm1
pand xmm0, xmm7
movdqu xmm1, xmmword [esp]
pand xmm1, xmm7
packuswb xmm0, xmm1
packuswb xmm2, xmm0
or esi, 1
movdqu xmmword [ebp + esi + 0x1e0], xmm6
movdqu xmmword [ebp + esi + 0x1f0], xmm2
cmp edx, eax
je 0x565890
or edx, 1
sub al, dl
add al, 1
nop word [eax + eax]
mov byte [ebp + edx + 0x1e0], al
add edx, 1
add al, 0xff
cmp ecx, edx
jne 0x565880
cmp dword [esp + 0x90], 0
je 0x565956
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
lea esi, [eax - 1]
and eax, 3
xor edx, edx
cmp esi, 3
jb 0x565927
mov esi, dword [esp + 0x90]
and esi, 0xfffffffc
xor edx, edx
nop word cs:[eax + eax]
nop
movzx edi, byte [ecx + edx*4 + 4]
movzx ebx, byte [ebp + edi + 0x1e0]
mov byte [ebp + edx + 0x1ed], bl
movzx edi, byte [ecx + edx*4 + 8]
movzx ebx, byte [ebp + edi + 0x1e0]
mov byte [ebp + edx + 0x1ee], bl
movzx edi, byte [ecx + edx*4 + 0xc]
movzx ebx, byte [ebp + edi + 0x1e0]
mov byte [ebp + edx + 0x1ef], bl
movzx edi, byte [ecx + edx*4 + 0x10]
movzx ebx, byte [ebp + edi + 0x1e0]
mov byte [ebp + edx + 0x1f0], bl
add edx, 4
cmp esi, edx
jne 0x5658d0
test eax, eax
je 0x565956
lea esi, [edx + ebp]
add esi, 0x1ed
lea ecx, [ecx + edx*4]
add ecx, 4
xor edx, edx
nop dword [eax]
movzx edi, byte [ecx + edx*4]
movzx ebx, byte [ebp + edi + 0x1e0]
mov byte [esi + edx], bl
add edx, 1
cmp eax, edx
jne 0x565940
mov eax, 0xffffffba
mov esi, dword [esp + 0x88]
test esi, esi
je 0x5661f0
mov ecx, ebp
neg ecx
and ecx, 3
jne 0x56555f
mov eax, dword [esp + 0x84]
add eax, 1
mov dword [esp + 0x10], eax
lea eax, [ebp + 0x1ed]
mov dword [esp], eax
mov edx, dword [esp + 0x90]
cmp edx, 2
jb 0x565e31
mov dword [esp + 0x40], ecx
lea edi, [ecx + ebp]
lea ebx, [edi + 0x190]
pxor xmm0, xmm0
movdqu xmmword [edi + 0x1b0], xmm0
movdqu xmmword [edi + 0x1a0], xmm0
movdqu xmmword [edi + 0x190], xmm0
mov dword [edi + 0x1c0], 0
test edx, edx
jle 0x5659fe
mov eax, dword [esp + 0x90]
mov ecx, dword [esp]
add eax, ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx edx, byte [ecx]
add ecx, 1
add dword [ebx + edx*4], 1
cmp ecx, eax
jb 0x5659f0
mov dword [esp + 0x30], ebx
lea eax, [esi - 1]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x84]
add eax, esi
mov dword [esp + 0x28], eax
mov ebx, 0xfffffff2
mov esi, 0x70
add ebx, 1
cmp dword [edi + esi*4], 0
lea esi, [esi - 1]
je 0x565a20
mov dword [esp + 0x50], esi
mov dword [esp + 0x60], edi
mov ecx, ebx
neg ecx
xor edx, edx
mov esi, 0
mov eax, 0
cmp ecx, 8
jb 0x565c59
mov esi, ecx
and esi, 0xfffffff8
lea eax, [esi - 8]
mov edi, eax
shr edi, 3
add edi, 1
mov dword [esp + 0x20], edi
test eax, eax
mov dword [esp + 0x24], ecx
je 0x565b75
mov eax, dword [esp + 0x40]
lea edi, [eax + ebp]
add edi, 0x1c0
and ecx, 0xfffffff8
add ecx, 0xfffffff8
shr ecx, 3
add ecx, 1
and ecx, 0xfffffffe
pxor xmm0, xmm0
xor eax, eax
movdqa xmm2, xmmword [0x688510]
pxor xmm1, xmm1
nop dword [eax + eax]
movdqu xmm4, xmmword [edi + eax*4 - 0x30]
movdqu xmm5, xmmword [edi + eax*4 - 0x20]
movdqa xmm6, xmm0
pxor xmm6, xmm2
movdqa xmm3, xmm4
pxor xmm3, xmm2
pcmpgtd xmm3, xmm6
pand xmm4, xmm3
pandn xmm3, xmm0
por xmm3, xmm4
movdqa xmm0, xmm1
pxor xmm0, xmm2
movdqa xmm4, xmm5
pxor xmm4, xmm2
pcmpgtd xmm4, xmm0
pand xmm5, xmm4
pandn xmm4, xmm1
por xmm4, xmm5
movdqu xmm1, xmmword [edi + eax*4 - 0x10]
movdqu xmm5, xmmword [edi + eax*4]
movdqa xmm6, xmm3
pxor xmm6, xmm2
movdqa xmm0, xmm1
pxor xmm0, xmm2
pcmpgtd xmm0, xmm6
pand xmm1, xmm0
pandn xmm0, xmm3
por xmm0, xmm1
movdqa xmm3, xmm4
pxor xmm3, xmm2
movdqa xmm1, xmm5
pxor xmm1, xmm2
pcmpgtd xmm1, xmm3
pand xmm5, xmm1
pandn xmm1, xmm4
por xmm1, xmm5
add eax, 0x10
add ecx, 0xfffffffe
jne 0x565aa0
jmp 0x565b7f
movdqa xmm3, xmmword [0x688480]
movdqa xmm2, xmmword [str._t_n_v_f]
movdqa xmm1, xmmword [0x6884a0]
movdqa xmm0, xmmword [0x6884b0]
xor esi, esi
test bl, 1
jne 0x5657c4
jmp 0x56586f
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
test byte [esp + 0x20], 1
je 0x565be1
mov ecx, dword [esp + 0x30]
movdqu xmm5, xmmword [ecx + eax*4]
movdqu xmm3, xmmword [ecx + eax*4 + 0x10]
movdqa xmm2, xmmword [0x688510]
movdqa xmm6, xmm0
pxor xmm6, xmm2
movdqa xmm4, xmm5
pxor xmm4, xmm2
pcmpgtd xmm4, xmm6
pand xmm5, xmm4
pandn xmm4, xmm0
por xmm4, xmm5
movdqa xmm0, xmm1
pxor xmm0, xmm2
pxor xmm2, xmm3
pcmpgtd xmm2, xmm0
pand xmm3, xmm2
pandn xmm2, xmm1
por xmm2, xmm3
movdqa xmm0, xmm4
movdqa xmm1, xmm2
movdqa xmm2, xmmword [0x688510]
movdqa xmm4, xmm1
pxor xmm4, xmm2
movdqa xmm3, xmm0
pxor xmm3, xmm2
pcmpgtd xmm3, xmm4
pand xmm0, xmm3
pandn xmm3, xmm1
por xmm3, xmm0
pshufd xmm1, xmm3, 0xee
movdqa xmm0, xmm3
pxor xmm0, xmm2
movdqa xmm4, xmm1
pxor xmm4, xmm2
pcmpgtd xmm0, xmm4
pand xmm3, xmm0
pandn xmm0, xmm1
por xmm0, xmm3
pshufd xmm1, xmm0, 0x55
movdqa xmm3, xmm0
pxor xmm3, xmm2
pxor xmm2, xmm1
pcmpgtd xmm3, xmm2
pand xmm0, xmm3
pandn xmm3, xmm1
por xmm3, xmm0
movd eax, xmm3
cmp dword [esp + 0x24], esi
je 0x565c7f
mov edi, esi
add esi, ebx
neg esi
mov ecx, dword [esp + 0x40]
lea edi, [ecx + edi*4]
add edi, ebp
add edi, 0x190
nop
mov ecx, dword [edi + edx*4]
cmp ecx, eax
cmova eax, ecx
add edx, 1
cmp esi, edx
jne 0x565c70
mov edx, dword [esp + 0x90]
cmp eax, edx
mov esi, dword [esp + 0x88]
je 0x565e20
cmp eax, 1
je 0x565e20
mov edi, dword [esp + 0x50]
add edi, 0xffffff9d
lea eax, [edx - 1]
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x1e
bsr ecx, edx
xor ecx, 0xffffffe0
add ecx, 0x21
bsr edx, edi
xor edx, 0xffffffe0
add edx, 0x22
cmp ecx, edx
cmovb edx, ecx
cmp eax, 6
mov ecx, 6
cmovae eax, ecx
cmp edx, eax
cmova eax, edx
cmp eax, 6
mov ecx, 5
cmovae ecx, eax
cmp ecx, 0xc
mov edx, 0xc
cmovb edx, ecx
mov eax, dword [esp + 0x60]
lea eax, [eax + 0x1c4]
push 0
mov dword [esp + 0x54], edi
push edi
push dword [esp + 0x98]
push dword [esp + 0x3c]
mov dword [esp + 0x50], edx
push edx
mov dword [esp + 0x44], eax
push eax
call fcn.00563890
add esp, 0x18
cmp eax, 0xffffff88
ja 0x5661f0
mov eax, ebx
mov edi, dword [esp + 0x40]
imul eax, edi
mov ecx, 6
sub ecx, eax
shr ecx, 3
add ecx, 3
cmp ebx, 0xffffffff
mov eax, 0x200
cmovne eax, ecx
xor ebx, ebx
mov edx, dword [esp + 0x2c]
cmp eax, edx
setbe bl
mov ecx, dword [esp + 0x10]
push ebx
push edi
push dword [esp + 0x58]
push dword [esp + 0x3c]
call fcn.00568a50
add esp, 0x10
xor edi, edi
cmp eax, 0xffffff89
cmovb edi, eax
jae 0x5661f0
mov ecx, dword [esp + 0x60]
lea eax, [ecx + 0xec]
push 0xa4
push eax
push dword [esp + 0x48]
push dword [esp + 0x5c]
push dword [esp + 0x40]
push ecx
call fcn.00554200
mov ecx, dword [esp + 0xa8]
add esp, 0x18
cmp eax, 0xffffff88
ja 0x5661f0
add edi, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
sub edx, edi
mov eax, ecx
shr eax, 7
add eax, ecx
add eax, 8
xor ebx, ebx
cmp eax, edx
setbe bl
mov ecx, edi
push ebx
push dword [esp + 0x64]
push dword [esp + 0x98]
push dword [esp + 0xc]
call fcn.005691b0
mov edx, dword [esp + 0xa0]
add esp, 0x10
cmp eax, 0xffffff88
ja 0x5661f0
test eax, eax
je 0x565e20
add eax, edi
sub eax, dword [esp + 0x10]
cmp eax, 0xffffff88
ja 0x5661f0
cmp eax, 2
jb 0x565e20
mov ecx, edx
shr ecx, 1
cmp eax, ecx
jae 0x565e20
mov ecx, dword [esp + 0x84]
mov byte [ecx], al
add eax, 1
jmp 0x5661f0
mov eax, 0xffffffff
cmp edx, 0x80
ja 0x5661f0
lea ebx, [edx + 1]
shr ebx, 1
mov eax, 0xffffffba
cmp ebx, esi
jae 0x5661f0
add ebx, 1
mov eax, edx
add al, 0x7f
mov ecx, dword [esp + 0x84]
mov byte [ecx], al
mov eax, dword [esp]
mov byte [eax + edx], 0
test edx, edx
je 0x5661ee
lea edi, [edx - 1]
xor esi, esi
cmp edi, 0xe
jb 0x5661b1
mov eax, edi
shr eax, 1
mov edx, edi
and edx, 0xfffffffe
add edx, ebp
add edx, 0x1ef
cmp dword [esp + 0x10], edx
jae 0x565e96
lea edx, [eax + ecx]
add edx, 2
cmp dword [esp], edx
jb 0x5661b1
mov dword [esp], ebx
add eax, 1
xor edx, edx
cmp edi, 0x1e
jae 0x565fc7
mov dword [esp + 0x10], eax
mov ebx, eax
and ebx, 0xfffffff8
lea esi, [ebx + ebx]
movdqa xmm0, xmmword [0x688520]
movzx edi, byte [ebp + edx*2 + 0x1ed]
movzx eax, byte [ebp + edx*2 + 0x1f1]
movzx ecx, byte [ebp + edx*2 + 0x1f3]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp + edx*2 + 0x1ef]
shl eax, 8
or eax, edi
movzx edi, byte [ebp + edx*2 + 0x1f5]
movd xmm1, eax
pinsrw xmm1, ecx, 1
movzx eax, byte [ebp + edx*2 + 0x1f7]
shl eax, 8
or eax, edi
pinsrw xmm1, eax, 2
movzx eax, byte [ebp + edx*2 + 0x1f9]
movzx ecx, byte [ebp + edx*2 + 0x1fb]
shl ecx, 8
or ecx, eax
pinsrw xmm1, ecx, 3
movzx eax, byte [ebp + edx*2 + 0x1ee]
movzx ecx, byte [ebp + edx*2 + 0x1f2]
movzx edi, byte [ebp + edx*2 + 0x1f4]
shl edi, 8
or edi, ecx
movzx ecx, byte [ebp + edx*2 + 0x1f0]
shl ecx, 8
or ecx, eax
movd xmm2, ecx
movzx eax, byte [ebp + edx*2 + 0x1f6]
pinsrw xmm2, edi, 1
movzx ecx, byte [ebp + edx*2 + 0x1f8]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp + edx*2 + 0x1fa]
pinsrw xmm2, ecx, 2
movzx ecx, byte [ebp + edx*2 + 0x1fc]
shl ecx, 8
or ecx, eax
psllw xmm1, 4
pand xmm1, xmm0
pinsrw xmm2, ecx, 3
mov ecx, dword [esp + 0x84]
paddb xmm2, xmm1
mov eax, edx
and eax, 0x7ffffff8
movq qword [ecx + eax + 1], xmm2
add edx, 8
cmp ebx, edx
jne 0x565ebb
cmp dword [esp + 0x10], ebx
mov ebx, dword [esp]
jne 0x5661b1
jmp 0x5661ee
mov edx, eax
and edx, 0xfffffff0
lea esi, [ebp + 0x20c]
xor edi, edi
movdqa xmm0, xmmword [0x688520]
movzx ebx, byte [esi + edi*2 - 1]
movd xmm1, ebx
movzx ebx, byte [esi + edi*2 - 3]
movd xmm2, ebx
punpcklbw xmm2, xmm1
movzx ebx, byte [esi + edi*2 - 5]
movd xmm3, ebx
movzx ebx, byte [esi + edi*2 - 7]
movd xmm1, ebx
punpcklbw xmm1, xmm3
punpcklwd xmm1, xmm2
movzx ebx, byte [esi + edi*2 - 9]
movd xmm2, ebx
movzx ebx, byte [esi + edi*2 - 0xb]
movd xmm3, ebx
punpcklbw xmm3, xmm2
movzx ebx, byte [esi + edi*2 - 0xd]
movd xmm4, ebx
movzx ebx, byte [esi + edi*2 - 0xf]
movd xmm2, ebx
punpcklbw xmm2, xmm4
punpcklwd xmm2, xmm3
punpckldq xmm2, xmm1
movzx ebx, byte [esi + edi*2 - 0x11]
movd xmm1, ebx
movzx ebx, byte [esi + edi*2 - 0x13]
movd xmm4, ebx
punpcklbw xmm4, xmm1
movzx ebx, byte [esi + edi*2 - 0x15]
movd xmm1, ebx
movzx ebx, byte [esi + edi*2 - 0x17]
movd xmm3, ebx
punpcklbw xmm3, xmm1
punpcklwd xmm3, xmm4
movzx ebx, byte [esi + edi*2 - 0x19]
movd xmm1, ebx
movzx ebx, byte [esi + edi*2 - 0x1b]
movd xmm4, ebx
punpcklbw xmm4, xmm1
movzx ebx, byte [esi + edi*2 - 0x1d]
movd xmm5, ebx
movzx ebx, byte [esi + edi*2 - 0x1f]
movd xmm1, ebx
punpcklbw xmm1, xmm5
punpcklwd xmm1, xmm4
punpckldq xmm1, xmm3
punpcklqdq xmm1, xmm2
psllw xmm1, 4
pand xmm1, xmm0
movzx ebx, byte [esi + edi*2]
movd xmm2, ebx
movzx ebx, byte [esi + edi*2 - 2]
movd xmm4, ebx
punpcklbw xmm4, xmm2
movzx ebx, byte [esi + edi*2 - 4]
movd xmm2, ebx
movzx ebx, byte [esi + edi*2 - 6]
movd xmm3, ebx
punpcklbw xmm3, xmm2
punpcklwd xmm3, xmm4
movzx ebx, byte [esi + edi*2 - 8]
movd xmm2, ebx
movzx ebx, byte [esi + edi*2 - 0xa]
movd xmm4, ebx
punpcklbw xmm4, xmm2
movzx ebx, byte [esi + edi*2 - 0xc]
movd xmm5, ebx
movzx ebx, byte [esi + edi*2 - 0xe]
movd xmm2, ebx
punpcklbw xmm2, xmm5
punpcklwd xmm2, xmm4
punpckldq xmm2, xmm3
movzx ebx, byte [esi + edi*2 - 0x10]
movd xmm3, ebx
movzx ebx, byte [esi + edi*2 - 0x12]
movd xmm4, ebx
punpcklbw xmm4, xmm3
movzx ebx, byte [esi + edi*2 - 0x14]
movd xmm5, ebx
movzx ebx, byte [esi + edi*2 - 0x16]
movd xmm3, ebx
punpcklbw xmm3, xmm5
punpcklwd xmm3, xmm4
movzx ebx, byte [esi + edi*2 - 0x18]
movd xmm4, ebx
movzx ebx, byte [esi + edi*2 - 0x1a]
movd xmm5, ebx
punpcklbw xmm5, xmm4
movzx ebx, byte [esi + edi*2 - 0x1c]
movd xmm4, ebx
movzx ebx, byte [esi + edi*2 - 0x1e]
movd xmm6, ebx
punpcklbw xmm6, xmm4
punpcklwd xmm6, xmm5
punpckldq xmm6, xmm3
punpcklqdq xmm6, xmm2
paddb xmm6, xmm1
mov ebx, edi
and ebx, 0x7ffffff0
movdqu xmmword [ecx + ebx + 1], xmm6
add edi, 0x10
cmp edx, edi
jne 0x565fdc
cmp eax, edx
jne 0x5661a2
mov eax, dword [esp]
jmp 0x5661f0
test al, 8
mov ebx, dword [esp]
jne 0x565ea7
add edx, edx
mov esi, edx
mov eax, esi
shr eax, 1
add eax, ecx
add eax, 1
mov edx, dword [esp + 0x90]
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, byte [ebp + esi + 0x1ed]
shl cl, 4
add cl, byte [ebp + esi + 0x1ee]
mov byte [eax], cl
add esi, 2
add eax, 1
cmp esi, edx
jb 0x5661d0
mov eax, ebx
add esp, 0x70
pop esi
pop edi
pop ebx
pop ebp
ret