Function at 0x6bc590
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [esp + 0x78], eax
push 0x3f4f
call fcn.004c9bb0
add esp, 4
test eax, eax
je 0x6bc688
mov edx, eax
neg edx
and edx, 0x1f
mov ecx, eax
mov esi, edx
mov dword [esp + 0x14], edx
add ecx, edx
je 0x6bc688
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov edx, ecx
mov ecx, eax
neg ecx
and ecx, 0xf
lea esi, [eax + ecx]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
lea esi, [edx + 0x15c0]
lea edx, [eax + ecx]
add edx, 0x700
cmp esi, edx
mov dword [esp + 0x20], esi
jae 0x6bc69c
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
add edx, edi
add edx, 0x15e0
lea edi, [eax + ecx]
add edi, 0x6e0
cmp edi, edx
jae 0x6bc69c
add eax, ecx
add eax, 0x6e3
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
add ecx, edx
add ecx, 0x15c3
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [eax + edx - 3]
xor bl, 0x36
mov byte [ecx + edx - 3], bl
movzx ebx, byte [eax + edx - 2]
xor bl, 0x36
mov byte [ecx + edx - 2], bl
movzx ebx, byte [eax + edx - 1]
xor bl, 0x36
mov byte [ecx + edx - 1], bl
movzx ebx, byte [eax + edx]
xor bl, 0x36
mov byte [ecx + edx], bl
add edx, 4
cmp edx, 0x20
jne 0x6bc650
jmp 0x6bc6c2
push 0x20
push dword [ebp + 8]
call fcn.0053ae10
add esp, 8
xor esi, esi
jmp 0x6bd296
mov eax, dword [esp + 8]
movups xmm0, xmmword [eax + 0x6e0]
movaps xmm1, xmmword [str.6666666666666666_]
xorps xmm0, xmm1
movups xmmword [esi], xmm0
movups xmm0, xmmword [eax + 0x6f0]
xorps xmm0, xmm1
movups xmmword [esi + 0x10], xmm0
movdqa xmm0, xmmword [str.6666666666666666_]
mov ebx, dword [esp + 0xc]
movdqu xmmword [ebx + 0x15f0], xmm0
movdqu xmmword [ebx + 0x15e0], xmm0
lea esi, [ebx + 0x1600]
push esi
call fcn.0055fc20
add esp, 4
push 0x40
push dword [esp + 0x24]
push esi
call fcn.0055fc60
add esp, 0xc
mov eax, dword [ebp + 0x14]
push eax
mov edi, dword [ebp + 0x10]
push edi
push esi
call fcn.0055fc60
add esp, 0xc
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
lea eax, [esp + 0x50]
push esi
push eax
call fcn.0055fd60
add esp, 8
movdqa xmm0, xmmword [str.jjjjjjjjjjjjjjjjshared_key]
movdqu xmm1, xmmword [ebx + 0x15c0]
movdqu xmm2, xmmword [ebx + 0x15d0]
pxor xmm1, xmm0
movdqu xmmword [ebx + 0x15c0], xmm1
pxor xmm2, xmm0
movdqu xmmword [ebx + 0x15d0], xmm2
movdqa xmm0, xmmword [0x747dc0]
movdqu xmmword [ebx + 0x15e0], xmm0
movdqu xmmword [ebx + 0x15f0], xmm0
push esi
call fcn.0055fc20
add esp, 4
push 0x40
push dword [esp + 0x24]
push esi
call fcn.0055fc60
add esp, 0xc
push 0x20
lea eax, [esp + 0x54]
push eax
push esi
call fcn.0055fc60
add esp, 0xc
mov dword [esp + 0x4c], esi
push esi
push dword [ebp + 8]
call fcn.0055fd60
add esp, 8
cmp dword [ebp + 0x14], 0x472
jne 0x6bd285
lea ecx, [ebx + 0x1670]
mov dword [esp + 0x48], ecx
mov edx, edi
call fcn.006bd2b0
test eax, eax
je 0x6bd285
lea eax, [ebx + 0x1bf0]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 8]
lea eax, [edx + 0x58]
mov dword [esp + 0x20], eax
mov ecx, dword [edx]
mov ebx, dword [edx + 0x58]
not ecx
xor esi, esi
xor eax, eax
mov dword [esp + 4], edx
jmp 0x6bc82b
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
add eax, 4
mov dword [esp + 4], eax
not ecx
mov eax, dword [esp + 0x20]
mov ebx, dword [eax + 4]
add eax, 4
mov dword [esp + 0x20], eax
xor eax, eax
add esi, 1
cmp esi, 0x2bd
je 0x6bc850
mov edx, ecx
and edx, 1
add edx, 0xffffffff
mov edi, ebx
and edi, 1
or edi, edx
mov edx, dword [esp + 0x30]
mov word [edx + esi*2], di
add eax, 1
cmp eax, 0x20
je 0x6bc800
shr ecx, 1
shr ebx, 1
jmp 0x6bc820
mov esi, dword [esp + 0xc]
lea eax, [esi + 0x2170]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x48]
mov word [eax + 0x57e], 0
mov dword [eax + 0x57a], 0
mov edi, dword [esp + 0x30]
mov word [edi + 0x57e], 0
mov dword [edi + 0x57a], 0
lea edx, [esi + 0xb00]
mov ecx, esi
mov dword [esp + 0x18], edx
push 0x58
push edi
push eax
call fcn.006bd6c0
add esp, 0xc
movdqa xmm0, xmmword [esi + 0x570]
xor eax, eax
nop
movdqa xmm1, xmmword [esi + eax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [esi + eax]
movdqa xmmword [esi + eax + 0x2170], xmm0
add eax, 0x10
movdqa xmm0, xmm1
cmp eax, 0x580
jne 0x6bc8b0
mov eax, dword [esp + 0x20]
mov word [eax + 0x57e], 0
mov dword [eax + 0x57a], 0
lea eax, [esi + 0x26f0]
lea ecx, [esi + 0x2748]
mov dword [esp + 0x30], ecx
xor esi, esi
mov dword [esp + 0x10], eax
mov dword [esp + 4], eax
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x6bc92b
add esi, 1
cmp esi, 0x2bd
je 0x6bc998
mov edi, dword [esp + 0x20]
movzx edi, word [edi + esi*2]
shl edi, 3
movsx ebx, di
mov edi, ebx
shr edi, 3
sar ebx, 3
imul ebx, ebx, 0x5555
shr ebx, 0x10
lea ebx, [ebx + ebx*2]
sub edi, ebx
movsx ebx, di
sar ebx, 1
and ebx, edi
add ebx, 0xffffffff
and ebx, edi
shr edx, 1
movzx edi, bx
shrd eax, edi, 1
and edi, 0xfffffffe
shl edi, 0x1e
or edx, edi
or eax, edi
add ecx, 1
cmp ecx, 0x20
jne 0x6bc920
mov ecx, dword [esp + 4]
mov dword [ecx], edx
add ecx, 4
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x30], ecx
xor edx, edx
xor eax, eax
xor ecx, ecx
jmp 0x6bc920
neg cl
shr edx, cl
shr eax, cl
mov ecx, dword [esp + 4]
mov dword [ecx], edx
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [esp + 8]
add eax, 0xb0
mov esi, dword [esp + 0xc]
lea ecx, [esi + 0x27a0]
push eax
push dword [esp + 0x14]
mov dword [esp + 0xc], ecx
push ecx
call fcn.006b6a70
add esp, 0xc
lea edx, [esi + 0x2850]
lea eax, [esi + 0x27f8]
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x27a0]
mov edi, dword [esi + 0x27f8]
not ecx
xor eax, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x30], edx
jmp 0x6bca30
mov esi, dword [esp + 4]
mov ecx, dword [esi + 4]
add esi, 4
mov dword [esp + 4], esi
not ecx
mov esi, dword [esp + 0x10]
mov edi, dword [esi + 4]
add esi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], 0
add eax, 1
cmp eax, 0x2bd
je 0x6bca67
mov esi, ecx
mov ebx, ecx
and ebx, 1
add ebx, 0xffffffff
mov ecx, edi
and edi, 1
or edi, ebx
mov edx, dword [esp + 0x30]
mov word [edx + eax*2], di
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
add edi, 1
cmp edi, 0x20
je 0x6bca00
mov dword [esp + 0x20], edi
shr esi, 1
shr ecx, 1
mov edi, ecx
mov ecx, esi
jmp 0x6bca26
mov esi, dword [esp + 0xc]
lea ecx, [esi + 0x2dd0]
call fcn.006bc110
lea edx, [esi + 0x3350]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add eax, esi
add eax, 0x3370
mov ecx, 0xfffffa90
movdqu xmm0, xmmword [eax + ecx - 0x30]
movdqu xmm1, xmmword [eax + ecx - 0x1790]
psubw xmm1, xmm0
movdqu xmm0, xmmword [eax + ecx - 0x1780]
movdqu xmmword [eax + ecx + 0x550], xmm1
movdqu xmm1, xmmword [eax + ecx - 0x20]
psubw xmm0, xmm1
movdqu xmmword [eax + ecx + 0x560], xmm0
movdqu xmm0, xmmword [eax + ecx - 0x1770]
movdqu xmm1, xmmword [eax + ecx - 0x10]
psubw xmm0, xmm1
movdqu xmmword [eax + ecx + 0x570], xmm0
add ecx, 0x30
jne 0x6bca90
mov ebx, dword [esp + 0xc]
movzx eax, word [ebx + 0x1be0]
sub ax, word [ebx + 0x3340]
movzx ecx, word [ebx + 0x1be2]
mov word [ebx + 0x38c0], ax
sub cx, word [ebx + 0x3342]
mov word [ebx + 0x38c2], cx
movzx eax, word [ebx + 0x1be4]
sub ax, word [ebx + 0x3344]
mov word [ebx + 0x38c4], ax
movzx eax, word [ebx + 0x1be6]
sub ax, word [ebx + 0x3346]
mov word [ebx + 0x38c6], ax
movzx eax, word [ebx + 0x1be8]
sub ax, word [ebx + 0x3348]
mov word [ebx + 0x38c8], ax
mov ecx, dword [esp + 8]
lea eax, [ecx + 0x160]
lea edi, [edx + 0x57a]
mov dword [esp + 4], edi
mov word [edx + 0x57e], 0
mov dword [edx + 0x57a], 0
mov word [ecx + 0x6de], 0
mov dword [ecx + 0x6da], 0
mov ecx, ebx
mov edi, edx
mov edx, dword [esp + 0x18]
push 0x58
push eax
mov dword [esp + 0x28], edi
push edi
call fcn.006bd6c0
add esp, 0xc
movdqa xmm0, xmmword [ebx + 0x570]
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movdqa xmm1, xmmword [ebx + eax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [ebx + eax]
movdqa xmmword [ebx + eax + 0x3350], xmm0
add eax, 0x10
movdqa xmm0, xmm1
cmp eax, 0x580
jne 0x6bcbc0
mov eax, dword [esp + 4]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + eax + 0x38c8]
movd xmm0, ecx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
add eax, esi
add eax, 0x3380
xor edx, edx
nop dword [eax]
movdqu xmm1, xmmword [eax + edx*2 - 0x30]
movdqu xmm2, xmmword [eax + edx*2 - 0x20]
psubw xmm1, xmm0
psubw xmm2, xmm0
movdqu xmmword [eax + edx*2 - 0x30], xmm1
movdqu xmmword [eax + edx*2 - 0x20], xmm2
cmp edx, 0x2a0
je 0x6bcc7b
movdqu xmm1, xmmword [eax + edx*2 - 0x10]
movdqu xmm2, xmmword [eax + edx*2]
psubw xmm1, xmm0
psubw xmm2, xmm0
movdqu xmmword [eax + edx*2 - 0x10], xmm1
movdqu xmmword [eax + edx*2], xmm2
add edx, 0x20
jmp 0x6bcc30
mov edx, dword [esp + 0x14]
sub word [esi + edx + 0x38b0], cx
sub word [esi + edx + 0x38b2], cx
sub word [esi + edx + 0x38b4], cx
sub word [esi + edx + 0x38b6], cx
sub word [esi + edx + 0x38b8], cx
sub word [esi + edx + 0x38ba], cx
sub word [esi + edx + 0x38bc], cx
sub word [esi + edx + 0x38be], cx
sub word [esi + edx + 0x38c0], cx
sub word [esi + edx + 0x38c2], cx
sub word [esi + edx + 0x38c4], cx
sub word [esi + edx + 0x38c6], cx
sub word [esi + edx + 0x38c8], cx
xor ecx, ecx
movdqa xmm0, xmmword [0x786c80]
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm1, xmmword [eax + ecx*2 - 0x30]
movdqu xmm2, xmmword [eax + ecx*2 - 0x20]
pand xmm1, xmm0
pand xmm2, xmm0
movdqu xmmword [eax + ecx*2 - 0x30], xmm1
movdqu xmmword [eax + ecx*2 - 0x20], xmm2
cmp ecx, 0x2a0
je 0x6bcd4b
movdqu xmm1, xmmword [eax + ecx*2 - 0x10]
movdqu xmm2, xmmword [eax + ecx*2]
pand xmm1, xmm0
pand xmm2, xmm0
movdqu xmmword [eax + ecx*2 - 0x10], xmm1
movdqu xmmword [eax + ecx*2], xmm2
add ecx, 0x20
jmp 0x6bcd00
mov eax, dword [esp + 0xc]
and byte [eax + 0x38b1], 0x1f
and byte [eax + 0x38b3], 0x1f
and byte [eax + 0x38b5], 0x1f
and byte [eax + 0x38b7], 0x1f
and byte [eax + 0x38b9], 0x1f
and byte [eax + 0x38bb], 0x1f
and byte [eax + 0x38bd], 0x1f
and byte [eax + 0x38bf], 0x1f
and byte [eax + 0x38c1], 0x1f
and byte [eax + 0x38c3], 0x1f
and byte [eax + 0x38c5], 0x1f
and byte [eax + 0x38c7], 0x1f
and byte [eax + 0x38c9], 0x1f
lea ecx, [eax + 0x38d0]
mov dword [esp + 8], ecx
add eax, 0x3928
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0xffffffff
xor edx, edx
mov dword [esp + 4], 0
xor edi, edi
xor ecx, ecx
jmp 0x6bce11
mov eax, dword [esp + 8]
mov dword [eax], edx
add eax, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov dword [eax], ebx
add eax, 4
mov dword [esp + 0x18], eax
xor ecx, ecx
mov dword [esp + 4], 0
xor edx, edx
add edi, 1
cmp edi, 0x2bd
je 0x6bce63
mov eax, dword [esp + 0x20]
movzx eax, word [eax + edi*2]
mov esi, eax
and esi, 3
mov ebx, esi
shr ebx, 1
xor esi, ebx
neg ebx
and ebx, 0x1fff
or ebx, esi
cmp bx, ax
mov eax, dword [esp + 0x10]
mov ebx, 0
cmovne eax, ebx
mov dword [esp + 0x10], eax
shr edx, 1
mov ebx, dword [esp + 4]
shrd ebx, esi, 1
and esi, 0xfffffffe
shl esi, 0x1e
or edx, esi
or ebx, esi
add ecx, 1
cmp ecx, 0x20
je 0x6bcde0
mov dword [esp + 4], ebx
jmp 0x6bce06
neg cl
shr edx, cl
mov esi, dword [esp + 4]
shr esi, cl
mov eax, dword [esp + 8]
mov dword [eax], edx
mov eax, dword [esp + 0x18]
mov dword [eax], esi
mov esi, dword [esp + 0xc]
lea ecx, [esi + 0x3980]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x48]
call fcn.006bc420
lea ecx, [esi + 0x3df2]
mov eax, 0xffffff74
mov edi, dword [esp + 0x30]
mov dword [esp + 8], ecx
nop word cs:[eax + eax]
nop dword [eax]
mov dword [esp + 4], eax
mov dword [esp + 0x30], edi
movzx edx, word [edi]
and edx, 3
mov ecx, edx
shr ecx, 1
xor ecx, edx
movzx esi, word [edi + 2]
and esi, 3
mov edx, esi
shr edx, 1
xor edx, esi
movzx esi, word [edi + 4]
and esi, 3
mov edi, esi
shr edi, 1
xor edi, esi
mov eax, dword [esp + 0x30]
movzx esi, word [eax + 6]
and esi, 3
mov ebx, esi
shr ebx, 1
xor ebx, esi
mov eax, dword [esp + 0x30]
movzx esi, word [eax + 8]
and esi, 3
mov eax, esi
shr eax, 1
xor eax, esi
lea edx, [edx + edx*2]
add dl, cl
lea ecx, [edi + edi*8]
mov edi, dword [esp + 0x30]
add cl, dl
lea edx, [ebx + ebx*8]
lea edx, [edx + edx*2]
add dl, cl
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
add al, dl
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov byte [ecx + edx + 0x8c], al
mov eax, dword [esp + 4]
add edi, 0xa
inc eax
jne 0x6bceb0
mov eax, dword [esp + 0xc]
add eax, 0x3e7e
mov dword [esp + 4], eax
mov eax, 0xffffff74
mov ecx, dword [esp + 0x20]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
movzx edx, word [eax]
and edx, 3
mov ecx, edx
shr ecx, 1
xor ecx, edx
mov eax, dword [esp + 0x20]
movzx esi, word [eax + 2]
and esi, 3
mov edx, esi
shr edx, 1
xor edx, esi
mov eax, dword [esp + 0x20]
movzx esi, word [eax + 4]
and esi, 3
mov edi, esi
shr edi, 1
xor edi, esi
mov eax, dword [esp + 0x20]
movzx esi, word [eax + 6]
and esi, 3
mov ebx, esi
shr ebx, 1
xor ebx, esi
mov eax, dword [esp + 0x20]
movzx esi, word [eax + 8]
and esi, 3
mov eax, esi
shr eax, 1
xor eax, esi
lea edx, [edx + edx*2]
add dl, cl
lea ecx, [edi + edi*8]
add cl, dl
lea edx, [ebx + ebx*8]
lea edx, [edx + edx*2]
add dl, cl
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
add al, dl
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x30]
mov byte [edx + esi + 0x8c], al
mov eax, dword [esp + 0x30]
add ecx, 0xa
inc eax
jne 0x6bcf60
push 0x472
mov edi, dword [esp + 0x1c]
push edi
push dword [ebp + 0x10]
call fcn.004c9e00
add esp, 0xc
mov esi, eax
mov ebx, dword [esp + 0x4c]
push ebx
call fcn.0055fc20
add esp, 4
push 0xb
push 0x786ca0
push ebx
call fcn.0055fc60
add esp, 0xc
push 0x8c
push dword [esp + 0xc]
push ebx
call fcn.0055fc60
add esp, 0xc
push 0x8c
push dword [esp + 8]
push ebx
call fcn.0055fc60
add esp, 0xc
push 0x472
push edi
push ebx
call fcn.0055fc60
add esp, 0xc
mov edi, dword [esp + 0xc]
add edi, 0x3f0a
push ebx
push edi
call fcn.0055fd60
add esp, 8
xor ecx, ecx
test esi, esi
movzx eax, byte [esp + 0x10]
cmovne eax, ecx
mov ecx, eax
not eax
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
add edx, esi
add edx, 0x3f2a
mov esi, dword [ebp + 8]
cmp edx, esi
jbe 0x6bd0fe
lea edx, [esi + 0x20]
cmp edi, edx
jae 0x6bd0fe
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
add edx, esi
add edx, 0x3f0b
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax]
mov edi, dword [ebp + 8]
movzx ebx, byte [edi + esi]
movzx edi, byte [edx + esi - 1]
and edi, ecx
and ebx, eax
or ebx, edi
mov edi, dword [ebp + 8]
mov byte [edi + esi], bl
mov edi, dword [ebp + 8]
movzx ebx, byte [edi + esi + 1]
movzx edi, byte [edx + esi]
and edi, ecx
and ebx, eax
or ebx, edi
mov edi, dword [ebp + 8]
mov byte [edi + esi + 1], bl
add esi, 2
cmp esi, 0x20
jne 0x6bd0c0
jmp 0x6bd285
movd xmm0, ecx
pshufd xmm1, xmm0, 0
movdqa xmmword [esp + 0x20], xmm1
movd xmm0, eax
pshufd xmm7, xmm0, 0
movdqa xmmword [esp + 0x30], xmm7
movdqu xmm2, xmmword [edi]
movdqu xmm5, xmmword [esi]
movdqa xmm4, xmm5
punpcklbw xmm4, xmm4
punpckhbw xmm5, xmm5
movdqa xmm6, xmm5
punpckhwd xmm5, xmm5
movdqa xmm3, xmm2
punpckhbw xmm2, xmm2
movdqa xmm0, xmm2
punpckhwd xmm2, xmm2
pand xmm2, xmm1
pand xmm5, xmm7
por xmm5, xmm2
movdqa xmm7, xmm4
punpckhwd xmm4, xmm4
punpcklwd xmm6, xmm6
punpcklbw xmm3, xmm3
punpcklwd xmm0, xmm0
pand xmm0, xmm1
movdqa xmm2, xmmword [esp + 0x30]
pand xmm6, xmm2
por xmm6, xmm0
movdqa xmm0, xmm3
punpckhwd xmm3, xmm3
pand xmm3, xmm1
pand xmm4, xmm2
movdqa xmm1, xmm2
por xmm4, xmm3
movdqu xmm2, xmmword [esi + 0x10]
punpcklwd xmm7, xmm7
punpcklwd xmm0, xmm0
pand xmm0, xmmword [esp + 0x20]
pand xmm7, xmm1
movdqa xmm3, xmm1
por xmm7, xmm0
movdqa xmm0, xmmword [0x747c80]
pand xmm5, xmm0
pand xmm6, xmm0
packuswb xmm6, xmm5
pand xmm4, xmm0
pand xmm7, xmm0
packuswb xmm7, xmm4
packuswb xmm7, xmm6
movdqu xmmword [esi], xmm7
movdqu xmm4, xmmword [edi + 0x10]
movdqa xmm6, xmm4
punpcklbw xmm6, xmm6
movdqa xmm5, xmm6
punpcklwd xmm5, xmm5
punpckhwd xmm6, xmm6
punpckhbw xmm4, xmm4
movdqa xmm0, xmm4
punpcklwd xmm0, xmm0
punpckhwd xmm4, xmm4
movdqa xmm1, xmmword [esp + 0x20]
pand xmm4, xmm1
pand xmm0, xmm1
pand xmm6, xmm1
pand xmm5, xmm1
movdqa xmm7, xmm2
punpckhbw xmm2, xmm2
movdqa xmm1, xmm2
punpckhwd xmm2, xmm2
pand xmm2, xmm3
por xmm2, xmm4
punpcklbw xmm7, xmm7
punpcklwd xmm1, xmm1
pand xmm1, xmm3
por xmm1, xmm0
movdqa xmm4, xmm7
punpckhwd xmm7, xmm7
pand xmm7, xmm3
por xmm7, xmm6
punpcklwd xmm4, xmm4
pand xmm4, xmm3
por xmm4, xmm5
movdqa xmm0, xmmword [0x747c80]
pand xmm2, xmm0
pand xmm1, xmm0
packuswb xmm1, xmm2
pand xmm7, xmm0
pand xmm4, xmm0
packuswb xmm4, xmm7
packuswb xmm4, xmm1
movdqu xmmword [esi + 0x10], xmm4
push dword [esp + 0x1c]
call fcn.004c9be0
add esp, 4
mov esi, 1
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret