Function at 0x6b99a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xea0
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], eax
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [esp + 0xe98], eax
push 0x2bdf
call fcn.004c9bb0
add esp, 4
test eax, eax
je 0x6b9dbd
mov ebx, eax
neg ebx
and ebx, 0x1f
mov edx, eax
add edx, ebx
je 0x6b9dbd
mov dword [esp + 0xc], eax
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
neg eax
and eax, 0xf
mov ecx, esi
neg ecx
and ecx, 0xf
mov dword [esp + 0x98], ecx
add ecx, esi
movdqu xmm0, xmmword [edi + 0x578]
movdqu xmm1, xmmword [edi + 0x588]
movdqu xmmword [ecx + 0x6f0], xmm1
mov dword [esp + 0x28], ecx
movdqu xmmword [ecx + 0x6e0], xmm0
mov dword [esp + 4], edx
lea esi, [edx + 0x15c0]
lea ecx, [edi + 0x2bc]
mov dword [esp + 0x60], ecx
cmp esi, ecx
jae 0x6b9a5f
mov ecx, dword [esp + 0xc]
lea edx, [ebx + ecx]
add edx, 0x1b38
xor ecx, ecx
cmp edx, edi
ja 0x6b9ae8
xor ecx, ecx
pxor xmm0, xmm0
movdqa xmm1, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
movdqa xmm2, xmmword [0x786c60]
pcmpeqd xmm3, xmm3
movdqa xmm4, xmmword [0x6fbe70]
nop word cs:[eax + eax]
nop dword [eax + eax]
movq xmm5, qword [edi + ecx]
punpcklbw xmm5, xmm0
movdqa xmm6, xmm5
pmulhw xmm6, xmm1
pmullw xmm6, xmm2
paddw xmm6, xmm5
movdqa xmm5, xmm6
psraw xmm5, 1
pand xmm5, xmm6
paddw xmm5, xmm3
pand xmm5, xmm6
movdqa xmm6, xmm5
psrlw xmm6, 1
pxor xmm6, xmm4
paddw xmm6, xmm3
por xmm6, xmm5
movdqu xmmword [esi + ecx*2], xmm6
add ecx, 8
cmp ecx, 0x2b8
jne 0x6b9a90
mov ecx, 0x2b8
add dword [esp + 0x30], eax
nop dword [eax]
movzx eax, byte [edi + ecx]
imul edx, eax, 0x5555
shr edx, 0x10
lea edx, [edx + edx*2]
sub eax, edx
movsx edx, ax
sar edx, 1
and edx, eax
add edx, 0xffffffff
and edx, eax
movzx eax, dx
mov edx, eax
shr edx, 1
xor edx, 1
add edx, 0xffffffff
or edx, eax
mov word [esi + ecx*2], dx
add ecx, 1
cmp ecx, 0x2bc
jne 0x6b9af0
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0xc]
mov word [eax + ebx + 0x1b38], 0
movzx ecx, word [eax + ebx + 0x15c0]
mov dword [esp + 0x10], ecx
movd xmm2, ecx
pslldq xmm2, 0xe
lea ecx, [eax + ebx]
add ecx, 0x15d2
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
nop word cs:[eax + eax]
movdqu xmm3, xmmword [ecx + edx*2 - 0x10]
movdqa xmm4, xmm3
pslldq xmm4, 2
psrldq xmm2, 0xe
por xmm2, xmm4
pmullw xmm2, xmm3
paddw xmm0, xmm2
movdqu xmm2, xmmword [ecx + edx*2]
psrldq xmm3, 0xe
movdqa xmm4, xmm2
pslldq xmm4, 2
por xmm4, xmm3
pmullw xmm4, xmm2
paddw xmm1, xmm4
add edx, 0x10
cmp edx, 0x2b0
jne 0x6b9b70
pextrw ecx, xmm2, 7
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd esi, xmm0
mov edi, dword [esp + 0xc]
movzx edx, word [edi + ebx + 0x1b22]
imul ecx, edx
add ecx, esi
movzx esi, word [edi + ebx + 0x1b24]
imul edx, esi
add edx, ecx
movzx ecx, word [edi + ebx + 0x1b26]
imul esi, ecx
add esi, edx
movzx edx, word [edi + ebx + 0x1b28]
imul ecx, edx
add ecx, esi
movzx esi, word [edi + ebx + 0x1b2a]
imul edx, esi
add edx, ecx
mov eax, ebx
movzx ebx, word [edi + ebx + 0x1b2c]
imul esi, ebx
add esi, edx
movzx edx, word [edi + eax + 0x1b2e]
imul ebx, edx
add ebx, esi
movzx ecx, word [edi + eax + 0x1b30]
imul edx, ecx
add edx, ebx
movzx esi, word [edi + eax + 0x1b32]
imul ecx, esi
add ecx, edx
movzx edx, word [edi + eax + 0x1b34]
movzx ebx, word [edi + eax + 0x1b36]
imul bx, dx
imul edx, esi
add edx, ecx
add ebx, edx
movsx ecx, bx
sar ecx, 0xf
or ecx, 1
mov edx, ecx
imul edx, dword [esp + 0x10]
mov word [edi + eax + 0x15c0], dx
mov dword [esp], eax
add eax, edi
add eax, 0x15d4
mov edx, 0xfffffff8
nop word cs:[eax + eax]
nop dword [eax]
movzx esi, word [eax + edx*2]
imul si, cx
mov word [eax + edx*2], si
movzx esi, word [eax + edx*2 + 4]
imul si, cx
mov word [eax + edx*2 + 4], si
movzx esi, word [eax + edx*2 + 8]
imul si, cx
mov word [eax + edx*2 + 8], si
movzx esi, word [eax + edx*2 + 0xc]
imul si, cx
mov word [eax + edx*2 + 0xc], si
movzx esi, word [eax + edx*2 + 0x10]
imul si, cx
mov word [eax + edx*2 + 0x10], si
add edx, 0xa
cmp edx, 0x2b3
jb 0x6b9cb0
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0x58]
mov dword [esp + 0x70], ecx
xor ebx, ebx
mov dword [esp + 8], eax
xor ecx, ecx
mov dword [esp + 0x10], 0
xor eax, eax
mov edi, dword [ebp + 0x10]
jmp 0x6b9d43
mov dword [esp + 0x10], esi
add ebx, 1
cmp ebx, 0x2bd
je 0x6b9de4
mov edx, dword [esp + 0x38]
movzx edx, word [edx + ebx*2]
shl edx, 3
movsx esi, dx
mov edx, esi
shr edx, 3
sar esi, 3
imul esi, esi, 0x5555
shr esi, 0x10
lea esi, [esi + esi*2]
sub edx, esi
movsx esi, dx
sar esi, 1
and esi, edx
add esi, 0xffffffff
and esi, edx
shr eax, 1
movzx edx, si
mov esi, dword [esp + 0x10]
shrd esi, edx, 1
and edx, 0xfffffffe
shl edx, 0x1e
or eax, edx
or esi, edx
add ecx, 1
cmp ecx, 0x20
jne 0x6b9d30
mov ecx, dword [esp + 8]
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x70]
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x10], 0
xor ecx, ecx
jmp 0x6b9d34
push 0x590
push 0
push dword [ebp + 8]
call fcn.006ccfc0
add esp, 0xc
push 0x710
push esi
call fcn.0053ae10
add esp, 8
xor esi, esi
jmp 0x6bbb86
neg cl
shr eax, cl
mov edx, dword [esp + 0x10]
shr edx, cl
mov ecx, dword [esp + 8]
mov dword [ecx], eax
mov eax, dword [esp + 0x70]
mov dword [eax], edx
mov ecx, dword [esp + 0x28]
lea eax, [ecx + 0xb0]
push ecx
push eax
call fcn.006b7620
add esp, 8
mov eax, dword [esp + 4]
lea esi, [eax + 0x1b40]
add edi, 0x578
cmp esi, edi
mov ebx, dword [esp]
mov edx, dword [esp + 0x60]
jae 0x6b9e40
mov eax, dword [esp + 0xc]
lea ecx, [ebx + eax]
add ecx, 0x20b8
xor eax, eax
cmp edx, ecx
jb 0x6b9ed0
xor eax, eax
pxor xmm0, xmm0
movdqa xmm1, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
movdqa xmm2, xmmword [0x786c60]
pcmpeqd xmm3, xmm3
movdqa xmm4, xmmword [0x6fbe70]
nop word cs:[eax + eax]
nop dword [eax]
movq xmm5, qword [edx + eax]
punpcklbw xmm5, xmm0
movdqa xmm6, xmm5
pmulhw xmm6, xmm1
pmullw xmm6, xmm2
paddw xmm6, xmm5
movdqa xmm5, xmm6
psraw xmm5, 1
pand xmm5, xmm6
paddw xmm5, xmm3
pand xmm5, xmm6
movdqa xmm6, xmm5
psrlw xmm6, 1
pxor xmm6, xmm4
paddw xmm6, xmm3
por xmm6, xmm5
movdqu xmmword [esi + eax*2], xmm6
add eax, 8
cmp eax, 0x2b8
jne 0x6b9e70
mov eax, 0x2b8
nop word [eax + eax]
movzx ecx, byte [edx + eax]
imul edx, ecx, 0x5555
shr edx, 0x10
lea edx, [edx + edx*2]
sub ecx, edx
movsx edx, cx
sar edx, 1
and edx, ecx
add edx, 0xffffffff
and edx, ecx
movzx ecx, dx
mov edx, ecx
shr edx, 1
xor edx, 1
add edx, 0xffffffff
or edx, ecx
mov word [esi + eax*2], dx
mov edx, dword [esp + 0x60]
add eax, 1
cmp eax, 0x2bc
jne 0x6b9ed0
mov dword [esp + 0x44], esi
mov edi, dword [esp + 0xc]
mov word [edi + ebx + 0x20b8], 0
movzx eax, word [edi + ebx + 0x1b40]
movd xmm2, eax
pslldq xmm2, 0xe
lea ecx, [edi + ebx]
add ecx, 0x1b52
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
nop word cs:[eax + eax]
nop
movdqu xmm3, xmmword [ecx + edx*2 - 0x10]
movdqa xmm4, xmm3
pslldq xmm4, 2
psrldq xmm2, 0xe
por xmm2, xmm4
pmullw xmm2, xmm3
paddw xmm0, xmm2
movdqu xmm2, xmmword [ecx + edx*2]
psrldq xmm3, 0xe
movdqa xmm4, xmm2
pslldq xmm4, 2
por xmm4, xmm3
pmullw xmm4, xmm2
paddw xmm1, xmm4
add edx, 0x10
cmp edx, 0x2b0
jne 0x6b9f50
pextrw ecx, xmm2, 7
paddw xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddw xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddw xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
paddw xmm0, xmm1
movd esi, xmm0
movzx edx, word [edi + ebx + 0x20a2]
imul ecx, edx
add ecx, esi
movzx esi, word [edi + ebx + 0x20a4]
imul edx, esi
add edx, ecx
movzx ecx, word [edi + ebx + 0x20a6]
imul esi, ecx
add esi, edx
movzx edx, word [edi + ebx + 0x20a8]
imul ecx, edx
add ecx, esi
movzx esi, word [edi + ebx + 0x20aa]
imul edx, esi
add edx, ecx
mov ecx, dword [esp]
movzx ebx, word [edi + ecx + 0x20ac]
imul esi, ebx
add esi, edx
mov ecx, dword [esp]
movzx edx, word [edi + ecx + 0x20ae]
imul ebx, edx
add ebx, esi
mov ecx, dword [esp]
movzx ecx, word [edi + ecx + 0x20b0]
imul edx, ecx
add edx, ebx
mov esi, dword [esp]
movzx esi, word [edi + esi + 0x20b2]
imul ecx, esi
add ecx, edx
mov edx, dword [esp]
movzx edx, word [edi + edx + 0x20b4]
mov ebx, dword [esp]
movzx ebx, word [edi + ebx + 0x20b6]
imul bx, dx
imul edx, esi
add edx, ecx
add ebx, edx
movsx ecx, bx
mov ebx, dword [esp]
sar ecx, 0xf
or ecx, 1
mov edx, ecx
imul edx, eax
mov word [edi + ebx + 0x1b40], dx
lea eax, [edi + ebx]
add eax, 0x1b54
mov edx, 0xfffffff8
nop
movzx esi, word [eax + edx*2]
imul si, cx
mov word [eax + edx*2], si
movzx esi, word [eax + edx*2 + 4]
imul si, cx
mov word [eax + edx*2 + 4], si
movzx esi, word [eax + edx*2 + 8]
imul si, cx
mov word [eax + edx*2 + 8], si
movzx esi, word [eax + edx*2 + 0xc]
imul si, cx
mov word [eax + edx*2 + 0xc], si
movzx esi, word [eax + edx*2 + 0x10]
imul si, cx
mov word [eax + edx*2 + 0x10], si
add edx, 0xa
cmp edx, 0x2b3
jb 0x6ba090
lea eax, [ebx + edi]
add eax, 0x1b70
xor ecx, ecx
movdqa xmm0, xmmword [0x786c70]
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm1, xmmword [eax + ecx*2 - 0x30]
movdqu xmm2, xmmword [eax + ecx*2 - 0x20]
pmullw xmm1, xmm0
pmullw xmm2, xmm0
movdqu xmmword [eax + ecx*2 - 0x30], xmm1
movdqu xmmword [eax + ecx*2 - 0x20], xmm2
cmp ecx, 0x2a0
je 0x6ba14b
movdqu xmm1, xmmword [eax + ecx*2 - 0x10]
movdqu xmm2, xmmword [eax + ecx*2]
pmullw xmm1, xmm0
pmullw xmm2, xmm0
movdqu xmmword [eax + ecx*2 - 0x10], xmm1
movdqu xmmword [eax + ecx*2], xmm2
add ecx, 0x20
jmp 0x6ba100
movzx eax, word [edi + ebx + 0x20a0]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20a0], ax
movzx eax, word [edi + ebx + 0x20a2]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20a2], ax
movzx eax, word [edi + ebx + 0x20a4]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20a4], ax
movzx eax, word [edi + ebx + 0x20a6]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20a6], ax
movzx eax, word [edi + ebx + 0x20a8]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20a8], ax
movzx eax, word [edi + ebx + 0x20aa]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20aa], ax
movzx eax, word [edi + ebx + 0x20ac]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20ac], ax
movzx eax, word [edi + ebx + 0x20ae]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20ae], ax
movzx eax, word [edi + ebx + 0x20b0]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20b0], ax
movzx eax, word [edi + ebx + 0x20b2]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20b2], ax
movzx eax, word [edi + ebx + 0x20b4]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20b4], ax
movzx eax, word [edi + ebx + 0x20b6]
lea eax, [eax + eax*2]
mov word [edi + ebx + 0x20b6], ax
lea ecx, [edi + ebx + 0x20b8]
movzx eax, word [edi + ebx + 0x20b8]
lea esi, [eax + eax*2]
mov word [edi + ebx + 0x20b8], si
xor edx, edx
mov dword [esp + 0x10], esi
nop
movzx eax, word [ecx + edx*2 - 2]
mov ebx, eax
sub ebx, esi
mov word [ecx + edx*2], bx
movzx esi, word [ecx + edx*2 - 4]
mov ebx, esi
sub ebx, eax
mov word [ecx + edx*2 - 2], bx
movzx eax, word [ecx + edx*2 - 6]
mov ebx, eax
sub ebx, esi
mov word [ecx + edx*2 - 4], bx
movzx ebx, word [ecx + edx*2 - 8]
mov esi, ebx
sub esi, eax
mov word [ecx + edx*2 - 6], si
movzx esi, word [ecx + edx*2 - 0xa]
mov eax, esi
sub eax, ebx
mov word [ecx + edx*2 - 8], ax
add edx, 0xfffffffb
cmp edx, 0xfffffd44
jne 0x6ba250
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x10]
sub ax, word [ebx + 0x1b40]
mov word [ebx + 0x1b40], ax
lea eax, [ebx + 0x20c0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
lea ecx, [eax + 0x57a]
mov dword [esp + 0x94], ecx
mov word [eax + 0x57e], 0
mov dword [eax + 0x57a], 0
mov esi, dword [esp + 0x44]
lea ecx, [esi + 0x57a]
mov dword [esp + 0x58], ecx
mov word [esi + 0x57e], 0
mov dword [esi + 0x57a], 0
lea edx, [ebx + 0xb00]
mov ecx, ebx
mov dword [esp + 0x34], edx
push 0x58
push esi
push eax
call fcn.006bd6c0
add esp, 0xc
movdqa xmm0, xmmword [ebx + 0x570]
xor eax, eax
nop word [eax + 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 + 0x20c0], xmm0
add eax, 0x10
movdqa xmm0, xmm1
cmp eax, 0x580
jne 0x6ba330
mov esi, dword [esp + 0x10]
mov word [esi + 0x57e], 0
mov dword [esi + 0x57a], 0
lea eax, [esp + 0x750]
push 0x580
push 0xff
push eax
call fcn.006ccfc0
add esp, 0xc
lea eax, [esp + 0x1d0]
push 0x580
push 0xff
push eax
call fcn.006ccfc0
mov edx, dword [esp + 0x10]
add esp, 0xc
mov ebx, dword [esp]
lea eax, [ebx + edi]
add eax, 0x263a
lea ecx, [esp + 0x750]
cmp eax, ecx
jbe 0x6ba3dd
xor eax, eax
lea ecx, [esp + 0xcca]
cmp esi, ecx
jb 0x6ba45d
lea eax, [ebx + edi]
add eax, 0x20f0
xor ecx, ecx
nop word [eax + eax]
movdqu xmm0, xmmword [eax + ecx*2 - 0x30]
movdqu xmm1, xmmword [eax + ecx*2 - 0x20]
pxor xmm2, xmm2
psubw xmm2, xmm0
pxor xmm0, xmm0
psubw xmm0, xmm1
movdqa xmmword [esp + ecx*2 + 0x750], xmm2
movdqa xmmword [esp + ecx*2 + 0x760], xmm0
cmp ecx, 0x2a0
je 0x6ba458
movdqu xmm0, xmmword [eax + ecx*2 - 0x10]
movdqu xmm1, xmmword [eax + ecx*2]
pxor xmm2, xmm2
psubw xmm2, xmm0
pxor xmm0, xmm0
psubw xmm0, xmm1
movdqa xmmword [esp + ecx*2 + 0x770], xmm2
movdqa xmmword [esp + ecx*2 + 0x780], xmm0
add ecx, 0x20
jmp 0x6ba3f0
mov eax, 0x2b0
lea ecx, [edx + 0x2640]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + eax*2]
add ecx, 0x750
mov dword [esp + 0x10], ecx
lea edx, [ebx + eax*2]
lea esi, [edi + edx]
add esi, 0x20c0
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, word [esi + edx*2]
xor ecx, ecx
sub cx, bx
mov ebx, dword [esp + 0x10]
mov word [ebx + edx*2], cx
add edx, 1
cmp edx, 1
jne 0x6ba490
mov esi, dword [esp]
lea ecx, [esi + edi]
add ecx, 0x20c6
add eax, edx
nop word [eax + eax]
xor edx, edx
sub dx, word [ecx + eax*2 - 6]
mov word [esp + eax*2 + 0x750], dx
xor edx, edx
sub dx, word [ecx + eax*2 - 4]
mov word [esp + eax*2 + 0x752], dx
xor edx, edx
sub dx, word [ecx + eax*2 - 2]
mov word [esp + eax*2 + 0x754], dx
xor edx, edx
sub dx, word [ecx + eax*2]
mov word [esp + eax*2 + 0x756], dx
add eax, 4
cmp eax, 0x2bd
jne 0x6ba4c0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xd10], xmm0
movdqa xmmword [esp + 0xd00], xmm0
movdqa xmmword [esp + 0xcf0], xmm0
movdqa xmmword [esp + 0xce0], xmm0
movdqa xmmword [esp + 0xcd0], xmm0
mov dword [esp + 0xd24], 0xffffffff
mov dword [esp + 0xd20], 0xffffffff
pxor xmm1, xmm1
movdqa xmmword [esp + 0xde0], xmm1
movdqa xmmword [esp + 0xdf0], xmm1
movdqa xmmword [esp + 0xe00], xmm1
movdqa xmmword [esp + 0xe10], xmm1
movdqa xmmword [esp + 0xe20], xmm1
mov dword [esp + 0xe34], 0
mov dword [esp + 0xe30], 0
movdqu xmmword [esp + 0xd8c], xmm1
movdqu xmmword [esp + 0xd9c], xmm1
movdqu xmmword [esp + 0xdac], xmm1
movdqu xmmword [esp + 0xdbc], xmm1
movdqu xmmword [esp + 0xdcc], xmm1
mov dword [esp + 0xddc], 0
mov dword [esp + 0xd88], 1
movdqa xmmword [esp + 0xd70], xmm0
movdqa xmmword [esp + 0xd60], xmm0
movdqa xmmword [esp + 0xd50], xmm0
movdqa xmmword [esp + 0xd40], xmm0
movdqa xmmword [esp + 0xd30], xmm0
mov dword [esp + 0xd80], 0xffffffff
mov dword [esp + 0xd84], 0x1fffffff
lea eax, [esp + 0xcd0]
add edi, esi
add edi, 0x20c2
xor esi, esi
xor ebx, ebx
xor ecx, ecx
jmp 0x6ba633
add esi, 2
movzx edx, word [edi + esi*2 - 2]
shld edx, ebx, 0x1f
add ecx, 1
cmp ecx, 0x20
jne 0x6ba64d
mov dword [eax], edx
add eax, 4
xor ecx, ecx
xor edx, edx
cmp esi, 0x2bc
je 0x6ba670
movzx ebx, word [edi + esi*2]
shld ebx, edx, 0x1f
add ecx, 1
cmp ecx, 0x20
jne 0x6ba630
mov dword [eax], ebx
add eax, 4
xor ecx, ecx
xor ebx, ebx
jmp 0x6ba630
neg cl
shr edx, cl
mov dword [eax], edx
mov ecx, dword [esp + 0xd24]
mov eax, ecx
shr eax, 0x1c
and eax, 1
neg eax
movd xmm0, eax
pshufd xmm1, xmm0, 0
movdqa xmm0, xmmword [esp + 0xcd0]
pxor xmm0, xmm1
movdqa xmmword [esp + 0xcd0], xmm0
movdqa xmm2, xmmword [esp + 0xce0]
pxor xmm2, xmm1
movdqa xmmword [esp + 0xce0], xmm2
movdqa xmm2, xmmword [esp + 0xcf0]
pxor xmm2, xmm1
movdqa xmmword [esp + 0xcf0], xmm2
movdqa xmm2, xmmword [esp + 0xd00]
pxor xmm2, xmm1
movdqa xmmword [esp + 0xd00], xmm2
pxor xmm1, xmmword [esp + 0xd10]
movdqa xmmword [esp + 0xd10], xmm1
xor dword [esp + 0xd20], eax
xor eax, ecx
and eax, 0xfffffff
mov dword [esp + 0xd24], eax
pcmpeqd xmm1, xmm1
movdqa xmmword [esp + 0xe80], xmm1
movdqa xmmword [esp + 0xe70], xmm1
movdqa xmmword [esp + 0xe60], xmm1
movdqa xmmword [esp + 0xe50], xmm1
movdqa xmmword [esp + 0xe40], xmm1
mov dword [esp + 0xe94], 0xffffffff
mov dword [esp + 0xe90], 0xffffffff
movd ecx, xmm0
xor eax, eax
nop dword [eax]
bswap ecx
mov edx, ecx
and edx, 0xf0f0f0f
shl edx, 4
shr ecx, 4
and ecx, 0xf0f0f0f
or ecx, edx
mov edx, ecx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
lea ecx, [ecx + edx*4]
mov edx, ecx
and edx, 0x55555555
shr ecx, 1
and ecx, 0x55555555
lea ecx, [ecx + edx*2]
mov dword [esp + eax*4 + 0xe40], ecx
cmp eax, 0x15
je 0x6ba7b7
mov ecx, dword [esp + eax*4 + 0xcd4]
add eax, 1
jmp 0x6ba760
movdqu xmm0, xmmword [esp + 0xe88]
pshufd xmm0, xmm0, 0x1b
movdqu xmm1, xmmword [esp + 0xe84]
pshufd xmm1, xmm1, 0x1b
psrld xmm0, 4
pslld xmm1, 0x1c
por xmm1, xmm0
movdqa xmmword [esp + 0xcd0], xmm1
movdqu xmm0, xmmword [esp + 0xe78]
pshufd xmm0, xmm0, 0x1b
movdqu xmm1, xmmword [esp + 0xe74]
pshufd xmm1, xmm1, 0x1b
psrld xmm0, 4
pslld xmm1, 0x1c
por xmm1, xmm0
movdqa xmmword [esp + 0xce0], xmm1
movdqu xmm0, xmmword [esp + 0xe68]
pshufd xmm0, xmm0, 0x1b
movdqu xmm1, xmmword [esp + 0xe64]
pshufd xmm1, xmm1, 0x1b
psrld xmm0, 4
pslld xmm1, 0x1c
por xmm1, xmm0
movdqa xmmword [esp + 0xcf0], xmm1
movdqu xmm0, xmmword [esp + 0xe58]
pshufd xmm0, xmm0, 0x1b
movdqu xmm1, xmmword [esp + 0xe54]
pshufd xmm1, xmm1, 0x1b
psrld xmm0, 4
pslld xmm1, 0x1c
por xmm1, xmm0
movdqa xmmword [esp + 0xd00], xmm1
movdqu xmm0, xmmword [esp + 0xe48]
pshufd xmm0, xmm0, 0x1b
movdqu xmm1, xmmword [esp + 0xe44]
pshufd xmm1, xmm1, 0x1b
psrld xmm0, 4
pslld xmm1, 0x1c
por xmm1, xmm0
movdqa xmmword [esp + 0xd10], xmm1
mov ecx, dword [esp + 0xe40]
mov eax, dword [esp + 0xe44]
shrd eax, ecx, 4
mov dword [esp + 0xd20], eax
shr ecx, 4
mov dword [esp + 0x40], ecx
mov dword [esp + 0xd24], ecx
mov eax, dword [esp + 0xd30]
mov dword [esp + 0x4c], eax
movdqa xmm4, xmmword [esp + 0xde0]
movdqa xmm3, xmmword [esp + 0xdf0]
movdqa xmm5, xmmword [esp + 0xe00]
movdqa xmm2, xmmword [esp + 0xe10]
movaps xmm0, xmmword [esp + 0xe20]
movaps xmmword [esp + 0x10], xmm0
mov eax, dword [esp + 0xe30]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xe34]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xcd0]
mov dword [esp + 8], eax
movups xmm0, xmmword [esp + 0xd34]
movaps xmmword [esp + 0x150], xmm0
movdqu xmm6, xmmword [esp + 0xcd4]
movups xmm0, xmmword [esp + 0xd44]
movaps xmmword [esp + 0x140], xmm0
mov eax, dword [esp + 0xd84]
mov dword [esp + 0x54], eax
mov esi, dword [esp + 0xdd8]
mov edx, 1
mov ecx, 0x577
mov eax, dword [esp + 0xddc]
mov dword [esp + 0x3c], eax
movdqu xmm7, xmmword [esp + 0xce4]
movups xmm0, xmmword [esp + 0xd54]
movaps xmmword [esp + 0x130], xmm0
movdqu xmm1, xmmword [esp + 0xcf4]
movups xmm0, xmmword [esp + 0xd64]
movaps xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [esp + 0xd04]
movaps xmmword [esp + 0x80], xmm0
movups xmm0, xmmword [esp + 0xd74]
movaps xmmword [esp + 0xf0], xmm0
movups xmm0, xmmword [esp + 0xd14]
movaps xmmword [esp + 0xc0], xmm0
movups xmm0, xmmword [esp + 0xd88]
movaps xmmword [esp + 0x160], xmm0
movups xmm0, xmmword [esp + 0xd98]
movaps xmmword [esp + 0x170], xmm0
movups xmm0, xmmword [esp + 0xda8]
movaps xmmword [esp + 0x180], xmm0
movups xmm0, xmmword [esp + 0xdb8]
movaps xmmword [esp + 0x190], xmm0
movdqu xmm0, xmmword [esp + 0xdc8]
movdqa xmmword [esp + 0x120], xmm0
nop
movdqa xmmword [esp + 0xb0], xmm1
mov dword [esp + 0x5c], esi
mov dword [esp + 0xac], ecx
movdqa xmm1, xmm4
psrld xmm1, 0x1f
movdqa xmm0, xmm1
pslldq xmm0, 4
paddd xmm4, xmm4
por xmm4, xmm0
movdqa xmmword [esp + 0x1c0], xmm4
movdqa xmm0, xmm3
psrld xmm0, 0x1f
shufps xmm1, xmm0, 3
shufps xmm1, xmm0, 0x98
paddd xmm3, xmm3
por xmm3, xmm1
movdqa xmmword [esp + 0x60], xmm3
movdqa xmm1, xmm5
psrld xmm1, 0x1f
shufps xmm0, xmm1, 3
shufps xmm0, xmm1, 0x98
paddd xmm5, xmm5
por xmm5, xmm0
movdqa xmmword [esp + 0x70], xmm5
movdqa xmm0, xmm2
psrld xmm0, 0x1f
shufps xmm1, xmm0, 3
shufps xmm1, xmm0, 0x98
paddd xmm2, xmm2
por xmm2, xmm1
movdqa xmmword [esp + 0x1a0], xmm2
movdqa xmm2, xmmword [esp + 0x10]
movdqa xmm1, xmm2
psrld xmm1, 0x1f
shufps xmm0, xmm1, 3
shufps xmm0, xmm1, 0x98
paddd xmm2, xmm2
por xmm2, xmm0
movdqa xmmword [esp + 0x10], xmm2
pshufd xmm0, xmm1, 0xff
movd dword [esp + 0xa4], xmm0
mov eax, edx
not eax
lea ecx, [edx - 1]
and ecx, eax
mov dword [esp + 0xa8], edx
shr edx, 0x1f
add edx, 0xffffffff
mov ebx, dword [esp + 8]
and ebx, 1
mov edi, ebx
neg edi
and edi, edx
sar ecx, 0x1f
not ecx
and edi, ecx
movd xmm0, edi
pshufd xmm0, xmm0, 0
movdqa xmm1, xmm6
movdqa xmm5, xmmword [esp + 0x150]
pxor xmm1, xmm5
pand xmm1, xmm0
pxor xmm5, xmm1
pxor xmm1, xmm6
movdqa xmmword [esp + 0x110], xmm1
movdqa xmm1, xmm7
movdqa xmm3, xmmword [esp + 0x140]
pxor xmm1, xmm3
pand xmm1, xmm0
pxor xmm3, xmm1
pxor xmm1, xmm7
movdqa xmmword [esp + 0x100], xmm1
movdqa xmm4, xmmword [esp + 0xb0]
movdqa xmm1, xmm4
movdqa xmm2, xmmword [esp + 0x130]
pxor xmm1, xmm2
pand xmm1, xmm0
pxor xmm2, xmm1
pxor xmm1, xmm4
movdqa xmmword [esp + 0xb0], xmm1
movdqa xmm4, xmmword [esp + 0x80]
movdqa xmm6, xmm4
movdqa xmm7, xmmword [esp + 0xe0]
pxor xmm6, xmm7
pand xmm6, xmm0
movdqa xmm1, xmm0
movdqa xmmword [esp + 0xd0], xmm0
pxor xmm7, xmm6
movdqa xmmword [esp + 0xe0], xmm7
pxor xmm6, xmm4
movdqa xmmword [esp + 0x80], xmm6
movdqa xmm0, xmmword [esp + 0xc0]
movdqa xmm4, xmm0
movdqa xmm6, xmmword [esp + 0xf0]
pxor xmm4, xmm6
pand xmm4, xmm1
pxor xmm6, xmm4
movdqa xmmword [esp + 0xf0], xmm6
pxor xmm4, xmm0
movaps xmm6, xmmword [esp + 0x120]
movaps xmm1, xmm6
movaps xmm0, xmmword [esp + 0x10]
xorps xmm1, xmm0
andps xmm1, xmmword [esp + 0xd0]
xorps xmm0, xmm1
movaps xmmword [esp + 0x10], xmm0
xorps xmm1, xmm6
movaps xmmword [esp + 0xc0], xmm1
mov ecx, dword [esp + 0x4c]
and ebx, ecx
neg ebx
movd xmm0, ebx
pshufd xmm7, xmm0, 0
movdqa xmmword [esp + 0x150], xmm5
movdqa xmm6, xmm5
pand xmm6, xmm7
pxor xmm6, xmmword [esp + 0x110]
movdqa xmmword [esp + 0x140], xmm3
pand xmm3, xmm7
pxor xmm3, xmmword [esp + 0x100]
movdqa xmmword [esp + 0x130], xmm2
pand xmm2, xmm7
pxor xmm2, xmmword [esp + 0xb0]
movdqa xmm1, xmmword [esp + 0xe0]
pand xmm1, xmm7
pxor xmm1, xmmword [esp + 0x80]
movdqa xmm0, xmmword [esp + 0xf0]
pand xmm0, xmm7
pxor xmm0, xmm4
mov eax, dword [esp + 0x40]
mov edx, eax
mov esi, dword [esp + 0x54]
xor edx, esi
and edx, edi
xor esi, edx
mov dword [esp + 0x54], esi
xor edx, eax
mov dword [esp + 0xa0], ebx
and esi, ebx
xor esi, edx
mov dword [esp + 0x40], esi
pshufd xmm5, xmm0, 0x1b
movd xmm4, esi
punpcklqdq xmm4, xmm5
shufps xmm4, xmm0, 0x68
pslld xmm4, 0x1f
psrld xmm5, 1
por xmm5, xmm4
movdqa xmmword [esp + 0x80], xmm5
movdqa xmm5, xmmword [esp + 0x1c0]
shufps xmm0, xmm1, 0xfc
shufps xmm0, xmm1, 0x68
pslld xmm0, 0x1f
pshufd xmm4, xmm1, 0x1b
psrld xmm4, 1
por xmm4, xmm0
movdqa xmmword [esp + 0x110], xmm4
shufps xmm1, xmm2, 0xfc
shufps xmm1, xmm2, 0x68
pslld xmm1, 0x1f
pshufd xmm0, xmm2, 0x1b
psrld xmm0, 1
por xmm0, xmm1
movdqa xmmword [esp + 0x100], xmm0
shufps xmm2, xmm3, 0xfc
shufps xmm2, xmm3, 0x68
pslld xmm2, 0x1f
pshufd xmm0, xmm3, 0x1b
psrld xmm0, 1
por xmm0, xmm2
movdqa xmmword [esp + 0xb0], xmm0
shufps xmm3, xmm6, 0xfc
shufps xmm3, xmm6, 0x68
pslld xmm3, 0x1f
pshufd xmm0, xmm6, 0x1b
psrld xmm0, 1
por xmm0, xmm3
movdqa xmmword [esp + 0x1b0], xmm0
mov eax, dword [esp + 8]
mov esi, eax
xor esi, ecx
and esi, edi
mov edx, edi
xor eax, esi
xor esi, ecx
mov dword [esp + 0x4c], esi
and esi, ebx
xor esi, eax
mov dword [esp + 0x9c], esi
movd dword [esp + 8], xmm6
movdqa xmm0, xmmword [esp + 0x160]
movdqa xmm2, xmm0
pxor xmm2, xmm5
movdqa xmm3, xmmword [esp + 0xd0]
pand xmm2, xmm3
pxor xmm5, xmm2
movdqa xmm6, xmm5
pxor xmm2, xmm0
movdqa xmm0, xmmword [esp + 0x170]
movdqa xmm5, xmm0
pxor xmm5, xmmword [esp + 0x60]
pand xmm5, xmm3
movdqa xmm1, xmmword [esp + 0x60]
pxor xmm1, xmm5
movdqa xmmword [esp + 0x60], xmm1
pxor xmm5, xmm0
movdqa xmm0, xmmword [esp + 0x180]
movdqa xmm1, xmm0
pxor xmm1, xmmword [esp + 0x70]
pand xmm1, xmm3
movdqa xmm3, xmmword [esp + 0x70]
pxor xmm3, xmm1
movdqa xmmword [esp + 0x70], xmm3
pxor xmm1, xmm0
movdqa xmm3, xmmword [esp + 0x190]
movdqa xmm0, xmm3
movdqa xmm4, xmmword [esp + 0x1a0]
pxor xmm0, xmm4
pand xmm0, xmmword [esp + 0xd0]
pxor xmm4, xmm0
movdqa xmmword [esp + 0x1a0], xmm4
pxor xmm0, xmm3
movdqa xmm4, xmm6
movdqa xmm3, xmm6
pand xmm3, xmm7
pxor xmm3, xmm2
movdqa xmmword [esp + 0x160], xmm3
movdqa xmm3, xmmword [esp + 0x60]
movdqa xmm2, xmm3
pand xmm2, xmm7
pxor xmm2, xmm5
movdqa xmm5, xmmword [esp + 0x70]
movdqa xmmword [esp + 0x170], xmm2
movdqa xmm2, xmm5
pand xmm2, xmm7
pxor xmm2, xmm1
movdqa xmmword [esp + 0x180], xmm2
movdqa xmm1, xmmword [esp + 0x1a0]
movdqa xmm2, xmm1
pand xmm1, xmm7
pxor xmm1, xmm0
movdqa xmmword [esp + 0x190], xmm1
pand xmm7, xmmword [esp + 0x10]
pxor xmm7, xmmword [esp + 0xc0]
movdqa xmmword [esp + 0x120], xmm7
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
shld eax, esi, 1
mov ecx, dword [esp + 0xa4]
lea ecx, [ecx + esi*2]
mov dword [esp + 0xd0], ecx
mov edi, dword [esp + 0x5c]
xor edi, ecx
and edi, edx
mov ebx, dword [esp + 0x3c]
xor ebx, eax
and ebx, edx
mov ecx, edx
not ecx
mov esi, dword [esp + 0xa8]
and ecx, esi
neg esi
and esi, edx
or ecx, esi
mov edx, dword [esp + 0x9c]
shld dword [esp + 8], edx, 0x1f
mov esi, dword [esp + 0xd0]
xor esi, edi
mov dword [esp + 0x48], esi
xor edi, dword [esp + 0x5c]
xor eax, ebx
xor ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0xa0]
and esi, edx
xor esi, edi
mov dword [esp + 0x50], eax
and edx, eax
mov edi, edx
xor edi, ebx
mov dword [esp + 0x3c], edi
shr dword [esp + 0x40], 1
pshufd xmm0, xmmword [esp + 0x80], 0x1b
movdqa xmmword [esp + 0xc0], xmm0
pshufd xmm0, xmmword [esp + 0x110], 0x1b
movdqa xmmword [esp + 0x80], xmm0
pshufd xmm1, xmmword [esp + 0x100], 0x1b
pshufd xmm7, xmmword [esp + 0xb0], 0x1b
pshufd xmm6, xmmword [esp + 0x1b0], 0x1b
add ecx, 1
mov edx, ecx
mov ecx, dword [esp + 0xac]
add ecx, 0xffffffff
jne 0x6baa40
movdqa xmmword [esp + 0xde0], xmm4
movdqa xmmword [esp + 0xdf0], xmm3
movdqa xmmword [esp + 0xe00], xmm5
movdqa xmmword [esp + 0xe10], xmm2
movaps xmm0, xmmword [esp + 0x10]
movaps xmmword [esp + 0xe20], xmm0
movaps xmm0, xmmword [esp + 0x150]
movups xmmword [esp + 0xd34], xmm0
mov eax, dword [esp + 8]
mov dword [esp + 0xcd0], eax
movdqu xmmword [esp + 0xcd4], xmm6
movaps xmm0, xmmword [esp + 0x140]
movups xmmword [esp + 0xd44], xmm0
movdqu xmmword [esp + 0xce4], xmm7
movaps xmm0, xmmword [esp + 0x130]
movups xmmword [esp + 0xd54], xmm0
movdqu xmmword [esp + 0xcf4], xmm1
movdqa xmm0, xmmword [esp + 0xe0]
movdqu xmmword [esp + 0xd64], xmm0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xe80], xmm0
movdqa xmmword [esp + 0xe70], xmm0
movdqa xmmword [esp + 0xe60], xmm0
movdqa xmmword [esp + 0xe50], xmm0
mov eax, dword [esp + 0x48]
mov dword [esp + 0xe30], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xe34], eax
movdqa xmm1, xmmword [esp + 0xde0]
pxor xmm0, xmm0
movdqa xmm2, xmm1
punpckhbw xmm2, xmm0
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm4, xmm1, 0x1b
packuswb xmm4, xmm2
movdqa xmm2, xmm4
psrlw xmm2, 4
movdqa xmm1, xmmword [0x6fbcf0]
pand xmm2, xmm1
pand xmm4, xmm1
psllw xmm4, 4
por xmm4, xmm2
movdqa xmm3, xmm4
psrlw xmm3, 2
movdqa xmm2, xmmword [0x6fbce0]
pand xmm3, xmm2
pand xmm4, xmm2
psllw xmm4, 2
por xmm4, xmm3
movdqa xmm5, xmm4
psrlw xmm5, 1
movdqa xmm3, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
pand xmm5, xmm3
pand xmm4, xmm3
paddb xmm4, xmm4
por xmm4, xmm5
mov dword [esp + 0xe94], 0xffffffff
mov dword [esp + 0xe90], 0xffffffff
movdqa xmmword [esp + 0xe40], xmm4
movdqa xmm4, xmmword [esp + 0xdf0]
movdqa xmm5, xmm4
punpckhbw xmm5, xmm0
pshuflw xmm5, xmm5, 0x1b
pshufhw xmm5, xmm5, 0x1b
punpcklbw xmm4, xmm0
pshuflw xmm4, xmm4, 0x1b
pshufhw xmm4, xmm4, 0x1b
packuswb xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 4
pand xmm5, xmm1
pand xmm4, xmm1
psllw xmm4, 4
por xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 2
pand xmm5, xmm2
pand xmm4, xmm2
psllw xmm4, 2
por xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 1
pand xmm5, xmm3
pand xmm4, xmm3
paddb xmm4, xmm4
por xmm4, xmm5
movdqa xmmword [esp + 0xe50], xmm4
movdqa xmm4, xmmword [esp + 0xe00]
movdqa xmm5, xmm4
punpckhbw xmm5, xmm0
pshuflw xmm5, xmm5, 0x1b
pshufhw xmm5, xmm5, 0x1b
punpcklbw xmm4, xmm0
pshuflw xmm4, xmm4, 0x1b
pshufhw xmm4, xmm4, 0x1b
packuswb xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 4
pand xmm5, xmm1
pand xmm4, xmm1
psllw xmm4, 4
por xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 2
pand xmm5, xmm2
pand xmm4, xmm2
psllw xmm4, 2
por xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 1
pand xmm5, xmm3
pand xmm4, xmm3
paddb xmm4, xmm4
por xmm4, xmm5
movdqa xmmword [esp + 0xe60], xmm4
movdqa xmm4, xmmword [esp + 0xe10]
movdqa xmm5, xmm4
punpckhbw xmm5, xmm0
pshuflw xmm5, xmm5, 0x1b
pshufhw xmm5, xmm5, 0x1b
punpcklbw xmm4, xmm0
pshuflw xmm4, xmm4, 0x1b
pshufhw xmm4, xmm4, 0x1b
packuswb xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 4
pand xmm5, xmm1
pand xmm4, xmm1
psllw xmm4, 4
por xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 2
pand xmm5, xmm2
pand xmm4, xmm2
psllw xmm4, 2
por xmm4, xmm5
movdqa xmm5, xmm4
psrlw xmm5, 1
pand xmm5, xmm3
pand xmm4, xmm3
paddb xmm4, xmm4
por xmm4, xmm5
movdqa xmmword [esp + 0xe70], xmm4
movdqa xmm4, xmmword [esp + 0xe20]
movdqa xmm5, xmm4
punpckhbw xmm5, xmm0
punpcklbw xmm4, xmm0
pshuflw xmm0, xmm5, 0x1b
pshufhw xmm5, xmm0, 0x1b
pshuflw xmm0, xmm4, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm5
movdqa xmm4, xmm0
psrlw xmm4, 4
pand xmm4, xmm1
pand xmm0, xmm1
psllw xmm0, 4
por xmm0, xmm4
movdqa xmm1, xmm0
psrlw xmm1, 2
pand xmm1, xmm2
pand xmm0, xmm2
psllw xmm0, 2
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 1
pand xmm1, xmm3
pand xmm0, xmm3
paddb xmm0, xmm0
por xmm0, xmm1
movdqa xmmword [esp + 0xe80], xmm0
mov eax, dword [esp + 0xe30]
bswap eax
mov ecx, eax
and ecx, 0xf0f0f0f
shl ecx, 4
shr eax, 4
and eax, 0xf0f0f0f
or eax, ecx
mov ecx, eax
and ecx, 0x33333333
shr eax, 2
and eax, 0x33333333
lea eax, [eax + ecx*4]
mov ecx, eax
and ecx, 0x55555555
shr eax, 1
and eax, 0x55555555
lea eax, [eax + ecx*2]
mov dword [esp + 0xe90], eax
mov eax, dword [esp + 0xe34]
bswap eax
mov ecx, eax
and ecx, 0xf0f0f0f
shl ecx, 4
shr eax, 4
and eax, 0xf0f0f0f
or eax, ecx
mov ecx, eax
and ecx, 0x33333333
shr eax, 2
and eax, 0x33333333
lea eax, [eax + ecx*4]
mov ecx, eax
and ecx, 0x55555555
shr eax, 1
and eax, 0x55555555
lea eax, [eax + ecx*2]
mov dword [esp + 0xe94], eax
movaps xmm0, xmmword [esp + 0x80]
movups xmmword [esp + 0xd04], xmm0
movaps xmm0, xmmword [esp + 0xf0]
movups xmmword [esp + 0xd74], xmm0
movaps xmm0, xmmword [esp + 0xc0]
movups xmmword [esp + 0xd14], xmm0
movaps xmm0, xmmword [esp + 0x160]
movups xmmword [esp + 0xd88], xmm0
movaps xmm0, xmmword [esp + 0x170]
movups xmmword [esp + 0xd98], xmm0
movaps xmm0, xmmword [esp + 0x180]
movups xmmword [esp + 0xda8], xmm0
movaps xmm0, xmmword [esp + 0x190]
movups xmmword [esp + 0xdb8], xmm0
movaps xmm0, xmmword [esp + 0x120]
movups xmmword [esp + 0xdc8], xmm0
movdqu xmm0, xmmword [esp + 0xe88]
pshufd xmm0, xmm0, 0x1b
movdqu xmm1, xmmword [esp + 0xe84]
pshufd xmm1, xmm1, 0x1b
pslld xmm1, 0x1c
psrld xmm0, 4
por xmm0, xmm1
movdqa xmmword [esp + 0xde0], xmm0
movdqu xmm0, xmmword [esp + 0xe74]
movdqu xmm1, xmmword [esp + 0xe78]
pshufd xmm1, xmm1, 0x1b
pshufd xmm0, xmm0, 0x1b
psrld xmm1, 4
pslld xmm0, 0x1c
por xmm0, xmm1
movdqa xmmword [esp + 0xdf0], xmm0
movdqu xmm0, xmmword [esp + 0xe64]
movdqu xmm1, xmmword [esp + 0xe68]
pshufd xmm1, xmm1, 0x1b
pshufd xmm0, xmm0, 0x1b
psrld xmm1, 4
pslld xmm0, 0x1c
por xmm0, xmm1
movdqa xmmword [esp + 0xe00], xmm0
movdqu xmm0, xmmword [esp + 0xe54]
movdqu xmm1, xmmword [esp + 0xe58]
pshufd xmm1, xmm1, 0x1b
pshufd xmm0, xmm0, 0x1b
psrld xmm1, 4
pslld xmm0, 0x1c
por xmm0, xmm1
movdqa xmmword [esp + 0xe10], xmm0
movdqu xmm0, xmmword [esp + 0xe44]
movdqu xmm1, xmmword [esp + 0xe48]
pshufd xmm1, xmm1, 0x1b
pshufd xmm0, xmm0, 0x1b
psrld xmm1, 4
pslld xmm0, 0x1c
por xmm0, xmm1
movdqa xmmword [esp + 0xe20], xmm0
mov eax, dword [esp + 0x54]
mov dword [esp + 0xd84], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xd24], eax
mov dword [esp + 0xdd8], esi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xddc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd30], eax
mov eax, dword [esp + 0xe40]
mov ecx, dword [esp + 0xe44]
shrd ecx, eax, 4
mov dword [esp + 0xe30], ecx
shr eax, 4
mov dword [esp + 0xe34], eax
lea eax, [esp + 0xde0]
mov esi, dword [esp + 0xde0]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
add ecx, edx
add ecx, 0x2642
xor edx, edx
xor ebx, ebx
jmp 0x6bb625
shr esi, 1
add edx, 2
mov edi, esi
and edi, 1
mov word [ecx + edx*2 - 2], di
add ebx, 1
cmp ebx, 0x20
jne 0x6bb650
mov esi, dword [eax + 4]
add eax, 4
xor ebx, ebx
jmp 0x6bb652
shr esi, 1
mov edi, dword [esp + 0x34]
cmp edx, 0x2bc
je 0x6bb67c
mov edi, esi
and edi, 1
mov word [ecx + edx*2], di
add ebx, 1
cmp ebx, 0x20
jne 0x6bb620
mov esi, dword [eax + 4]
add eax, 4
xor ebx, ebx
add edx, 2
jmp 0x6bb625
mov eax, dword [esp + 0x2c]
lea esi, [eax + 0x57a]
xor ebx, ebx
mov ecx, dword [esp + 4]
nop dword [eax]
lea eax, [esp + 0xcca]
mov word [eax + 4], 0
mov dword [eax], 0
mov word [esi + 4], 0
mov dword [esi], 0
mov edx, edi
push 0x58
push dword [esp + 0x30]
lea eax, [esp + 0x758]
push eax
call fcn.006bd6c0
mov ecx, dword [esp + 0x10]
add esp, 0xc
movdqa xmm0, xmmword [ecx + 0x570]
xor eax, eax
nop word cs:[eax + eax]
nop
movdqa xmm1, xmmword [ecx + eax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [ecx + eax]
movdqa xmmword [esp + eax + 0x1d0], xmm0
add eax, 0x10
movdqa xmm0, xmm1
cmp eax, 0x580
jne 0x6bb6e0
add word [esp + 0x1d0], 2
mov word [esi + 4], 0
mov dword [esi], 0
lea eax, [esp + 0x74a]
mov word [eax + 4], 0
mov dword [eax], 0
mov edx, edi
push 0x58
lea eax, [esp + 0x1d4]
push eax
push dword [esp + 0x34]
call fcn.006bd6c0
mov ecx, dword [esp + 0x10]
add esp, 0xc
movdqa xmm0, xmmword [ecx + 0x570]
xor eax, eax
nop word cs:[eax + eax]
nop
movdqa xmm1, xmmword [ecx + eax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [ecx + eax]
movdqa xmmword [ecx + eax + 0x2640], xmm0
add eax, 0x10
movdqa xmm0, xmm1
cmp eax, 0x580
jne 0x6bb770
mov word [esi + 4], 0
mov dword [esi], 0
add ebx, 1
cmp ebx, 4
jne 0x6bb690
mov word [esi + 4], 0
mov dword [esi], 0
mov eax, dword [esp + 0x58]
mov word [eax + 4], 0
mov dword [eax], 0
mov edx, edi
push 0x58
push dword [esp + 0x48]
push dword [esp + 0x34]
call fcn.006bd6c0
add esp, 0xc
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
lea ebx, [eax + ecx]
add ebx, 0x580
xor eax, eax
mov ecx, dword [esp + 0x30]
nop word cs:[eax + eax]
nop
movdqa xmm0, xmmword [ebx + eax - 0x10]
movdqa xmm1, xmmword [ebx + eax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [ebx + eax - 0x580]
movdqa xmmword [ecx + eax], xmm1
add eax, 0x10
cmp eax, 0x580
jne 0x6bb810
lea eax, [ecx + 0x57a]
mov dword [esp + 0x10], eax
mov word [ecx + 0x57e], 0
mov dword [ecx + 0x57a], 0
mov eax, dword [esp + 0x58]
mov word [eax + 4], 0
mov dword [eax], 0
mov ecx, dword [esp + 4]
mov edx, edi
push 0x58
push dword [esp + 0x48]
push dword [esp + 0x38]
call fcn.006bd6c0
mov edi, dword [esp + 0x3c]
add esp, 0xc
xor eax, eax
nop dword [eax]
movdqa xmm0, xmmword [ebx + eax - 0x10]
movdqa xmm1, xmmword [ebx + eax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [ebx + eax - 0x580]
movdqa xmmword [edi + eax], xmm1
add eax, 0x10
cmp eax, 0x580
jne 0x6bb890
mov eax, dword [esp + 0x10]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0x18
movdqa xmm2, xmmword [0x786c80]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 4]
nop word cs:[eax + eax]
movdqu xmm0, xmmword [edi + eax*2 - 0x30]
movdqu xmm1, xmmword [edi + eax*2 - 0x20]
pand xmm0, xmm2
pand xmm1, xmm2
movdqu xmmword [edi + eax*2 - 0x30], xmm0
movdqu xmmword [edi + eax*2 - 0x20], xmm1
cmp eax, 0x2b8
je 0x6bb93a
movdqu xmm0, xmmword [edi + eax*2 - 0x10]
movdqu xmm1, xmmword [edi + eax*2]
pand xmm0, xmm2
pand xmm1, xmm2
movdqu xmmword [edi + eax*2 - 0x10], xmm0
movdqu xmmword [edi + eax*2], xmm1
add eax, 0x20
jmp 0x6bb8f0
and byte [edi + 0x561], 0x1f
and byte [edi + 0x563], 0x1f
and byte [edi + 0x565], 0x1f
and byte [edi + 0x567], 0x1f
and byte [edi + 0x569], 0x1f
and byte [edi + 0x56b], 0x1f
and byte [edi + 0x56d], 0x1f
and byte [edi + 0x56f], 0x1f
and byte [edi + 0x571], 0x1f
and byte [edi + 0x573], 0x1f
and byte [edi + 0x575], 0x1f
and byte [edi + 0x577], 0x1f
and byte [edi + 0x579], 0x1f
lea eax, [edx + 0x160]
mov dword [esp + 0x10], eax
mov word [esi + 4], 0
mov dword [esi], 0
mov edi, dword [esp + 0x94]
mov word [edi + 4], 0
mov dword [edi], 0
mov edx, dword [esp + 0x34]
push 0x58
push dword [esp + 0x3c]
push dword [esp + 0x34]
call fcn.006bd6c0
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x98]
lea esi, [ecx + eax]
add esi, 0x160
xor eax, eax
nop dword [eax]
movdqa xmm0, xmmword [ebx + eax - 0x10]
movdqa xmm1, xmmword [ebx + eax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [ebx + eax - 0x580]
movdqa xmmword [esi + eax], xmm1
add eax, 0x10
cmp eax, 0x580
jne 0x6bb9f0
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0x6da]
mov dword [esp + 0x60], ecx
mov word [eax + 0x6de], 0
mov dword [eax + 0x6da], 0
mov word [edi + 4], 0
mov dword [edi], 0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x34]
push 0x58
push dword [esp + 0x3c]
push dword [esp + 0x18]
call fcn.006bd6c0
add esp, 0xc
xor eax, eax
nop word [eax + eax]
movdqa xmm0, xmmword [ebx + eax - 0x10]
movdqa xmm1, xmmword [ebx + eax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [ebx + eax - 0x580]
movdqa xmmword [esi + eax], xmm1
add eax, 0x10
cmp eax, 0x580
jne 0x6bba70
mov eax, dword [esp + 0x60]
mov word [eax + 4], 0
mov dword [eax], 0
mov eax, 0xc8
mov ecx, dword [esp + 0x28]
movdqa xmm2, xmmword [0x786c80]
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm0, xmmword [ecx + eax*2 - 0x30]
movdqu xmm1, xmmword [ecx + eax*2 - 0x20]
pand xmm0, xmm2
pand xmm1, xmm2
movdqu xmmword [ecx + eax*2 - 0x30], xmm0
movdqu xmmword [ecx + eax*2 - 0x20], xmm1
cmp eax, 0x368
je 0x6bbb1a
movdqu xmm0, xmmword [ecx + eax*2 - 0x10]
movdqu xmm1, xmmword [ecx + eax*2]
pand xmm0, xmm2
pand xmm1, xmm2
movdqu xmmword [ecx + eax*2 - 0x10], xmm0
movdqu xmmword [ecx + eax*2], xmm1
add eax, 0x20
jmp 0x6bbad0
and byte [ecx + 0x6c1], 0x1f
and byte [ecx + 0x6c3], 0x1f
and byte [ecx + 0x6c5], 0x1f
and byte [ecx + 0x6c7], 0x1f
and byte [ecx + 0x6c9], 0x1f
and byte [ecx + 0x6cb], 0x1f
and byte [ecx + 0x6cd], 0x1f
and byte [ecx + 0x6cf], 0x1f
and byte [ecx + 0x6d1], 0x1f
and byte [ecx + 0x6d3], 0x1f
and byte [ecx + 0x6d5], 0x1f
and byte [ecx + 0x6d7], 0x1f
and byte [ecx + 0x6d9], 0x1f
push dword [esp + 0xc]
call fcn.004c9be0
add esp, 4
mov esi, 1
mov ecx, dword [esp + 0xe98]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret