Function at 0x140099260
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd68
movdqa xmmword [rsp + 0xd50], xmm6
mov r13, r8
mov rsi, rdx
mov r15, rcx
mov rax, qword [0x1403acd78]
xor rax, rsp
mov qword [rsp + 0xd48], rax
mov ecx, 0x2bdf
call fcn.14009ea60
test rax, rax
je 0x14009931a
mov rbx, rax
mov eax, r15d
neg eax
and eax, 0xf
mov r14d, esi
neg r14d
and r14d, 0xf
add r14, rsi
mov r9d, ebx
neg r9d
and r9d, 0x1f
movdqu xmm0, xmmword [r13 + 0x578]
movdqu xmm1, xmmword [r13 + 0x588]
movdqu xmmword [r14 + 0x6f0], xmm1
movdqu xmmword [r14 + 0x6e0], xmm0
lea rbp, [rbx + r9]
add rbp, 0x15c0
lea rsi, [r13 + 0x2bc]
cmp rbp, rsi
jae 0x14009933e
lea rcx, [rbx + r9]
add rcx, 0x1b38
cmp rcx, r13
jbe 0x14009933e
xor ecx, ecx
jmp 0x1400993bd
xor edi, edi
mov r8d, 0x590
mov rcx, r15
xor edx, edx
call fcn.14027bdc0
mov edx, 0x710
mov rcx, rsi
call fcn.1400663a0
jmp 0x14009b2fc
xor ecx, ecx
pxor xmm0, xmm0
movdqa xmm1, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
movdqa xmm2, xmmword [0x1402f6180]
pcmpeqd xmm3, xmm3
movdqa xmm4, xmmword [0x1402f6190]
movq xmm5, qword [r13 + rcx]
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 [rbp + rcx*2], xmm6
add rcx, 8
cmp rcx, 0x2b8
jne 0x140099360
mov ecx, 0x2b8
add r15, rax
lea r12, [rbx + r9]
nop word cs:[rax + rax]
movzx eax, byte [r13 + rcx]
imul edx, eax, 0x5555
shr edx, 0x10
lea edx, [rdx + rdx*2]
sub eax, edx
movsx edx, ax
sar edx, 1
and edx, eax
dec edx
and edx, eax
movzx eax, dx
mov edx, eax
shr edx, 1
xor edx, 1
dec edx
or edx, eax
mov word [rbp + rcx*2], dx
inc rcx
cmp rcx, 0x2bc
jne 0x1400993d0
mov qword [rsp + 0xa8], r15
mov word [rbx + r9 + 0x1b38], 0
movzx eax, word [rbx + r9 + 0x15c0]
movd xmm2, eax
pslldq xmm2, 0xe
lea rax, [rbx + r9]
add rax, 0x15d2
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop word [rax + rax]
movdqu xmm3, xmmword [rax + rcx*2 - 0x10]
movdqa xmm4, xmm3
pslldq xmm4, 2
psrldq xmm2, 0xe
por xmm2, xmm4
pmullw xmm2, xmm3
paddw xmm0, xmm2
movdqu xmm2, xmmword [rax + rcx*2]
psrldq xmm3, 0xe
movdqa xmm4, xmm2
pslldq xmm4, 2
por xmm4, xmm3
pmullw xmm4, xmm2
paddw xmm1, xmm4
add rcx, 0x10
cmp rcx, 0x2b0
jne 0x140099450
pextrw eax, 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 ecx, xmm0
movzx edx, word [rbx + r9 + 0x1b22]
imul eax, edx
add eax, ecx
movzx ecx, word [rbx + r9 + 0x1b24]
imul edx, ecx
add edx, eax
movzx eax, word [rbx + r9 + 0x1b26]
imul ecx, eax
add ecx, edx
movzx edx, word [rbx + r9 + 0x1b28]
imul eax, edx
add eax, ecx
movzx ecx, word [rbx + r9 + 0x1b2a]
imul edx, ecx
add edx, eax
movzx eax, word [rbx + r9 + 0x1b2c]
imul ecx, eax
add ecx, edx
movzx edx, word [rbx + r9 + 0x1b2e]
imul eax, edx
add eax, ecx
movzx ecx, word [rbx + r9 + 0x1b30]
imul edx, ecx
add edx, eax
movzx eax, word [rbx + r9 + 0x1b32]
imul ecx, eax
add ecx, edx
movzx edx, word [rbx + r9 + 0x1b34]
movzx r8d, word [rbx + r9 + 0x1b36]
imul r8w, dx
imul edx, eax
add edx, ecx
add r8d, edx
movsx eax, r8w
sar eax, 0xf
or eax, 1
mov qword [rsp + 0xa0], r9
lea rcx, [rbx + r9]
add rcx, 0x15c8
mov rdx, 0xfffffffffffffffa
nop dword [rax]
movzx r8d, word [rcx + rdx*2 + 4]
imul r8w, ax
mov word [rcx + rdx*2 + 4], r8w
movzx r8d, word [rcx + rdx*2 + 8]
imul r8w, ax
mov word [rcx + rdx*2 + 8], r8w
movzx r8d, word [rcx + rdx*2 + 0xc]
imul r8w, ax
mov word [rcx + rdx*2 + 0xc], r8w
add rdx, 6
cmp rdx, 0x2b7
jb 0x140099590
lea rax, [r14 + 0x58]
xor r8d, r8d
mov rdx, r14
xor ecx, ecx
xor r9d, r9d
xor r10d, r10d
jmp 0x1400995fc
inc r8
cmp r8, 0x2bd
je 0x14009966b
movzx r11d, word [rbp + r8*2]
shl r11d, 3
movsx r11d, r11w
mov edi, r11d
shr edi, 3
sar r11d, 3
imul r11d, r11d, 0x5555
shr r11d, 0x10
lea r11d, [r11 + r11*2]
sub edi, r11d
movsx r11d, di
sar r11d, 1
and r11d, edi
dec r11d
and r11d, edi
shrd r9, r11, 1
shr r10, 1
and r11d, 2
shl r11, 0x3e
or r10, r11
or r9, r11
inc ecx
cmp ecx, 0x40
jne 0x1400995f0
mov qword [rdx], r10
add rdx, 8
mov qword [rax], r9
add rax, 8
xor r10d, r10d
xor r9d, r9d
xor ecx, ecx
jmp 0x1400995f0
neg cl
shr r10, cl
shr r9, cl
mov qword [rdx], r10
mov qword [rax], r9
lea rcx, [r14 + 0xb0]
mov rdx, r14
call fcn.1400972e0
lea r15, [r12 + 0x1b40]
add r13, 0x578
cmp r15, r13
mov rdi, qword [rsp + 0xa0]
jae 0x1400996ba
lea rax, [rdi + rbx]
add rax, 0x20b8
cmp rsi, rax
jae 0x1400996ba
xor eax, eax
jmp 0x140099740
xor eax, eax
pxor xmm0, xmm0
movdqa xmm1, xmmword [str.UUUUUUUUUUUUUUUU3333333333333333]
movdqa xmm2, xmmword [0x1402f6180]
pcmpeqd xmm3, xmm3
movdqa xmm4, xmmword [0x1402f6190]
nop dword [rax]
movq xmm5, qword [rsi + rax]
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 [r15 + rax*2], xmm6
add rax, 8
cmp rax, 0x2b8
jne 0x1400996e0
mov eax, 0x2b8
nop word [rax + rax]
movzx ecx, byte [rsi + rax]
imul edx, ecx, 0x5555
shr edx, 0x10
lea edx, [rdx + rdx*2]
sub ecx, edx
movsx edx, cx
sar edx, 1
and edx, ecx
dec edx
and edx, ecx
movzx ecx, dx
mov edx, ecx
shr edx, 1
xor edx, 1
dec edx
or edx, ecx
mov word [r15 + rax*2], dx
inc rax
cmp rax, 0x2bc
jne 0x140099740
mov word [rbx + rdi + 0x20b8], 0
movzx eax, word [rbx + rdi + 0x1b40]
movd xmm2, eax
pslldq xmm2, 0xe
lea rax, [rbx + rdi]
add rax, 0x1b52
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop word [rax + rax]
movdqu xmm3, xmmword [rax + rcx*2 - 0x10]
movdqa xmm4, xmm3
pslldq xmm4, 2
psrldq xmm2, 0xe
por xmm2, xmm4
pmullw xmm2, xmm3
paddw xmm0, xmm2
movdqu xmm2, xmmword [rax + rcx*2]
psrldq xmm3, 0xe
movdqa xmm4, xmm2
pslldq xmm4, 2
por xmm4, xmm3
pmullw xmm4, xmm2
paddw xmm1, xmm4
add rcx, 0x10
cmp rcx, 0x2b0
jne 0x1400997b0
pextrw eax, 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 ecx, xmm0
movzx edx, word [rbx + rdi + 0x20a2]
imul eax, edx
add eax, ecx
movzx ecx, word [rbx + rdi + 0x20a4]
imul edx, ecx
add edx, eax
movzx eax, word [rbx + rdi + 0x20a6]
imul ecx, eax
add ecx, edx
movzx edx, word [rbx + rdi + 0x20a8]
imul eax, edx
add eax, ecx
movzx ecx, word [rbx + rdi + 0x20aa]
imul edx, ecx
add edx, eax
movzx eax, word [rbx + rdi + 0x20ac]
imul ecx, eax
add ecx, edx
movzx edx, word [rbx + rdi + 0x20ae]
imul eax, edx
add eax, ecx
movzx ecx, word [rbx + rdi + 0x20b0]
imul edx, ecx
add edx, eax
movzx eax, word [rbx + rdi + 0x20b2]
imul ecx, eax
add ecx, edx
movzx edx, word [rbx + rdi + 0x20b4]
movzx r8d, word [rbx + rdi + 0x20b6]
imul r8w, dx
imul edx, eax
add edx, ecx
add r8d, edx
movsx eax, r8w
sar eax, 0xf
or eax, 1
lea rcx, [rbx + rdi]
add rcx, 0x1b48
mov rdx, 0xfffffffffffffffa
nop word [rax + rax]
movzx r8d, word [rcx + rdx*2 + 4]
imul r8w, ax
mov word [rcx + rdx*2 + 4], r8w
movzx r8d, word [rcx + rdx*2 + 8]
imul r8w, ax
mov word [rcx + rdx*2 + 8], r8w
movzx r8d, word [rcx + rdx*2 + 0xc]
imul r8w, ax
mov word [rcx + rdx*2 + 0xc], r8w
add rdx, 6
cmp rdx, 0x2b7
jb 0x1400998e0
lea rax, [rdi + rbx]
add rax, 0x1b70
xor ecx, ecx
movdqa xmm0, xmmword [0x1402f61a0]
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rax + rcx*2 - 0x30]
movdqu xmm2, xmmword [rax + rcx*2 - 0x20]
pmullw xmm1, xmm0
pmullw xmm2, xmm0
movdqu xmmword [rax + rcx*2 - 0x30], xmm1
movdqu xmmword [rax + rcx*2 - 0x20], xmm2
cmp rcx, 0x2a0
je 0x14009998d
movdqu xmm1, xmmword [rax + rcx*2 - 0x10]
movdqu xmm2, xmmword [rax + rcx*2]
pmullw xmm1, xmm0
pmullw xmm2, xmm0
movdqu xmmword [rax + rcx*2 - 0x10], xmm1
movdqu xmmword [rax + rcx*2], xmm2
add rcx, 0x20
jmp 0x140099940
movzx eax, word [rbx + rdi + 0x20a0]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20a0], ax
movzx eax, word [rbx + rdi + 0x20a2]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20a2], ax
movzx eax, word [rbx + rdi + 0x20a4]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20a4], ax
movzx eax, word [rbx + rdi + 0x20a6]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20a6], ax
movzx eax, word [rbx + rdi + 0x20a8]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20a8], ax
movzx eax, word [rbx + rdi + 0x20aa]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20aa], ax
movzx eax, word [rbx + rdi + 0x20ac]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20ac], ax
movzx eax, word [rbx + rdi + 0x20ae]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20ae], ax
movzx eax, word [rbx + rdi + 0x20b0]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20b0], ax
movzx eax, word [rbx + rdi + 0x20b2]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20b2], ax
movzx eax, word [rbx + rdi + 0x20b4]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20b4], ax
movzx eax, word [rbx + rdi + 0x20b6]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20b6], ax
lea rcx, [rbx + rdi + 0x20b8]
movzx eax, word [rbx + rdi + 0x20b8]
lea eax, [rax + rax*2]
mov word [rbx + rdi + 0x20b8], ax
xor edx, edx
mov r8d, eax
nop word cs:[rax + rax]
movzx r9d, word [rcx + rdx*2 - 2]
mov r10d, r9d
sub r10d, r8d
mov word [rcx + rdx*2], r10w
movzx r8d, word [rcx + rdx*2 - 4]
mov r10d, r8d
sub r10d, r9d
mov word [rcx + rdx*2 - 2], r10w
movzx r9d, word [rcx + rdx*2 - 6]
mov r10d, r9d
sub r10d, r8d
mov word [rcx + rdx*2 - 4], r10w
movzx r10d, word [rcx + rdx*2 - 8]
mov r8d, r10d
sub r8d, r9d
mov word [rcx + rdx*2 - 6], r8w
movzx r8d, word [rcx + rdx*2 - 0xa]
mov r9d, r8d
sub r9d, r10d
mov word [rcx + rdx*2 - 8], r9w
add rdx, 0xfffffffffffffffb
cmp rdx, 0xfffffffffffffd44
jne 0x140099aa0
sub ax, word [r12 + 0x1b40]
mov word [r12 + 0x1b40], ax
lea rsi, [r12 + 0x20c0]
lea rax, [rbp + 0x57a]
mov qword [rsp + 0x108], rax
mov word [rbp + 0x57e], 0
mov dword [rbp + 0x57a], 0
lea r13, [r15 + 0x57a]
mov word [r15 + 0x57e], 0
mov dword [r15 + 0x57a], 0
lea rdx, [r12 + 0xb00]
mov qword [rsp + 0x20], 0x58
mov rcx, r12
mov qword [rsp + 0x30], rdx
mov r8, rbp
mov r9, r15
call fcn.14009d310
movdqa xmm0, xmmword [r12 + 0x570]
xor eax, eax
nop
movdqa xmm1, xmmword [r12 + rax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [r12 + rax]
movdqa xmmword [r12 + rax + 0x20c0], xmm0
add rax, 0x10
movdqa xmm0, xmm1
cmp rax, 0x580
jne 0x140099b90
mov word [rsi + 0x57e], 0
mov dword [rsi + 0x57a], 0
mov rax, r12
neg rax
add rax, rsp
add rax, 0xffffffffffffe6b0
cmp rax, 0x20
jae 0x140099bfb
xor eax, eax
jmp 0x140099c7f
lea rax, [rdi + rbx]
add rax, 0x20f0
xor ecx, ecx
nop word [rax + rax]
movdqu xmm0, xmmword [rax + rcx*2 - 0x30]
movdqu xmm1, xmmword [rax + rcx*2 - 0x20]
pxor xmm2, xmm2
psubw xmm2, xmm0
pxor xmm0, xmm0
psubw xmm0, xmm1
movdqa xmmword [rsp + rcx*2 + 0x770], xmm2
movdqa xmmword [rsp + rcx*2 + 0x780], xmm0
cmp rcx, 0x2a0
je 0x140099c7a
movdqu xmm0, xmmword [rax + rcx*2 - 0x10]
movdqu xmm1, xmmword [rax + rcx*2]
pxor xmm2, xmm2
psubw xmm2, xmm0
pxor xmm0, xmm0
psubw xmm0, xmm1
movdqa xmmword [rsp + rcx*2 + 0x790], xmm2
movdqa xmmword [rsp + rcx*2 + 0x7a0], xmm0
add rcx, 0x20
jmp 0x140099c10
mov eax, 0x2b0
add rax, 0x1063
mov ecx, 1
nop word [rax + rax]
xor edx, edx
sub dx, word [r12 + rax*2 - 6]
mov word [rsp + rax*2 - 0x1956], dx
inc rax
dec rcx
jne 0x140099c90
nop dword [rax + rax]
xor ecx, ecx
sub cx, word [r12 + rax*2 - 6]
mov word [rsp + rax*2 - 0x1956], cx
xor ecx, ecx
sub cx, word [r12 + rax*2 - 4]
mov word [rsp + rax*2 - 0x1954], cx
xor ecx, ecx
sub cx, word [r12 + rax*2 - 2]
mov word [rsp + rax*2 - 0x1952], cx
xor ecx, ecx
sub cx, word [r12 + rax*2]
mov word [rsp + rax*2 - 0x1950], cx
add rax, 4
cmp rax, 0x1320
jne 0x140099cb0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x1f0], xmm0
movdqa xmmword [rsp + 0x200], xmm0
movdqa xmmword [rsp + 0x210], xmm0
movdqa xmmword [rsp + 0x220], xmm0
movdqa xmmword [rsp + 0x230], xmm0
mov qword [rsp + 0x240], 0
lea rdx, [rdi + rbx]
add rdx, 0x20c2
lea rax, [rsp + 0xcf0]
xor r8d, r8d
xor r9d, r9d
xor ecx, ecx
mov qword [rsp + 0x188], r12
jmp 0x140099d64
add r8, 2
movzx r10d, word [rdx + r8*2 - 2]
shld r10, r9, 0x3f
inc ecx
cmp ecx, 0x40
jne 0x140099d82
mov qword [rax], r10
add rax, 8
xor ecx, ecx
xor r10d, r10d
cmp r8, 0x2bc
je 0x140099daa
movzx r9d, word [rdx + r8*2]
shld r9, r10, 0x3f
inc ecx
cmp ecx, 0x40
jne 0x140099d60
mov qword [rax], r9
add rax, 8
xor ecx, ecx
xor r9d, r9d
jmp 0x140099d60
mov qword [rsp + 0x190], r13
mov qword [rsp + 0x198], r15
mov qword [rsp + 0x1a0], rbp
mov qword [rsp + 0x1a8], r14
mov qword [rsp + 0x110], rbx
neg cl
shr r10, cl
mov qword [rax], r10
mov r15, qword [rsp + 0xd40]
lea rax, [r15*8]
sar rax, 0x3f
mov rcx, qword [rsp + 0xcf0]
xor rcx, rax
mov r14, qword [rsp + 0xcf8]
xor r14, rax
mov rbx, qword [rsp + 0xd00]
xor rbx, rax
mov rdi, qword [rsp + 0xd08]
xor rdi, rax
mov rsi, qword [rsp + 0xd10]
xor rsi, rax
mov r11, qword [rsp + 0xd18]
xor r11, rax
mov r10, qword [rsp + 0xd20]
xor r10, rax
mov r9, qword [rsp + 0xd28]
xor r9, rax
mov r8, qword [rsp + 0xd30]
xor r8, rax
mov rdx, qword [rsp + 0xd38]
xor rdx, rax
xor rax, r15
bswap rcx
mov r15, rcx
shr r15, 4
movabs rbp, 0xf0f0f0f0f0f0f0f
and r15, rbp
and rcx, rbp
shl rcx, 4
or rcx, r15
movabs r13, 0x3333333333333333
mov r15, rcx
and r15, r13
shr rcx, 2
and rcx, r13
lea rcx, [rcx + r15*4]
mov qword [rsp + 0x28], rcx
movabs rcx, 0x5555555555555555
bswap r14
mov r15, r14
shr r15, 4
and r15, rbp
and r14, rbp
shl r14, 4
or r14, r15
mov r15, r14
and r15, r13
shr r14, 2
and r14, r13
lea r14, [r14 + r15*4]
mov r15, r14
and r15, rcx
shr r14, 1
and r14, rcx
bswap rbx
lea r14, [r14 + r15*2]
mov qword [rsp + 0x88], r14
mov r14, rbx
shr r14, 4
and r14, rbp
and rbx, rbp
shl rbx, 4
or rbx, r14
mov r14, rbx
and r14, r13
shr rbx, 2
and rbx, r13
lea rbx, [rbx + r14*4]
mov r14, rbx
mov r15, rcx
and r14, rcx
shr rbx, 1
and rbx, rcx
lea rcx, [rbx + r14*2]
mov qword [rsp + 0x80], rcx
bswap rdi
mov rbx, rdi
shr rbx, 4
and rbx, rbp
and rdi, rbp
shl rdi, 4
or rdi, rbx
mov rbx, rdi
and rbx, r13
shr rdi, 2
and rdi, r13
lea rdi, [rdi + rbx*4]
mov rbx, rdi
and rbx, r15
shr rdi, 1
and rdi, r15
bswap rsi
lea r14, [rdi + rbx*2]
mov rdi, rsi
shr rdi, 4
and rdi, rbp
and rsi, rbp
shl rsi, 4
or rsi, rdi
mov rdi, rsi
and rdi, r13
shr rsi, 2
and rsi, r13
lea rsi, [rsi + rdi*4]
mov rdi, rsi
and rdi, r15
shr rsi, 1
and rsi, r15
lea rbx, [rsi + rdi*2]
bswap r11
mov rsi, r11
shr rsi, 4
and rsi, rbp
and r11, rbp
shl r11, 4
or r11, rsi
mov rsi, r11
and rsi, r13
shr r11, 2
and r11, r13
lea r11, [r11 + rsi*4]
mov rsi, r11
and rsi, r15
shr r11, 1
and r11, r15
bswap r10
lea rsi, [r11 + rsi*2]
mov r11, r10
shr r11, 4
and r11, rbp
and r10, rbp
shl r10, 4
or r10, r11
mov r11, r10
and r11, r13
shr r10, 2
and r10, r13
lea r10, [r10 + r11*4]
mov r11, r10
and r11, r15
shr r10, 1
and r10, r15
lea rcx, [r10 + r11*2]
mov r11, rsi
bswap r9
mov r10, r9
shr r10, 4
and r10, rbp
and r9, rbp
shl r9, 4
or r9, r10
mov r10, r9
and r10, r13
shr r9, 2
and r9, r13
lea r9, [r9 + r10*4]
mov r10, r9
and r10, r15
shr r9, 1
and r9, r15
bswap r8
lea rsi, [r9 + r10*2]
mov r9, r8
shr r9, 4
and r9, rbp
and r8, rbp
shl r8, 4
or r8, r9
mov r9, r8
and r9, r13
shr r8, 2
and r8, r13
lea r8, [r8 + r9*4]
mov r9, r8
and r9, r15
shr r8, 1
and r8, r15
lea r10, [r8 + r9*2]
mov r9, rcx
bswap rdx
mov r8, rdx
shr r8, 4
and r8, rbp
and rdx, rbp
shl rdx, 4
or rdx, r8
mov r8, rdx
and r8, r13
shr rdx, 2
and rdx, r13
lea rdx, [rdx + r8*4]
mov r8, rdx
and r8, r15
shr rdx, 1
and rdx, r15
bswap rax
lea rcx, [rdx + r8*2]
mov rdx, rax
shr rdx, 4
and rdx, rbp
and rax, rbp
shl rax, 4
or rax, rdx
mov rdx, rax
and rdx, r13
shr rax, 2
and rax, r13
lea rax, [rax + rdx*4]
movabs r8, 0x5555555555555550
mov rdx, rax
and rdx, r8
shr rax, 1
and rax, r8
mov r8, rsi
lea rsi, [rax + rdx*2]
mov rdx, r10
mov r10, qword [rsp + 0x28]
mov rax, r10
and rax, r15
shr r10, 1
and r10, r15
shrd rsi, rcx, 4
shrd rcx, rdx, 4
mov qword [rsp + 0xb8], rcx
shrd rdx, r8, 4
shrd r8, r9, 4
shrd r9, r11, 4
shrd r11, rbx, 4
shrd rbx, r14, 4
mov rdi, qword [rsp + 0x80]
shrd r14, rdi, 4
mov qword [rsp + 0xb0], r14
mov rcx, qword [rsp + 0x88]
shrd rdi, rcx, 4
mov qword [rsp + 0x80], rdi
lea rax, [r10 + rax*2]
shrd rcx, rax, 4
mov qword [rsp + 0x88], rcx
shr rax, 4
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x1f8]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x238]
mov qword [rsp + 0x28], rax
mov eax, 1
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x168], 0xffffffffffffffff
movabs rax, 0x1fffffffffffffff
mov qword [rsp + 0x160], rax
mov ebp, 1
mov ecx, 0x577
xor r10d, r10d
mov rax, qword [rsp + 0x240]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x158], 0xffffffffffffffff
mov qword [rsp + 0x150], 0xffffffffffffffff
mov qword [rsp + 0x148], 0xffffffffffffffff
mov r15, 0xffffffffffffffff
mov qword [rsp + 0x140], 0xffffffffffffffff
mov qword [rsp + 0x138], 0xffffffffffffffff
mov qword [rsp + 0x130], 0xffffffffffffffff
mov qword [rsp + 0x128], 0xffffffffffffffff
mov qword [rsp + 0x120], 0xffffffffffffffff
mov r13d, 0
mov eax, 0
mov qword [rsp + 0xf8], rax
mov eax, 0
mov qword [rsp + 0xf0], rax
mov eax, 0
mov qword [rsp + 0xe8], rax
mov eax, 0
mov r14d, 0
mov qword [rsp + 0xe0], r14
mov r14d, 0
mov qword [rsp + 0xd8], r14
mov r14d, 0
mov qword [rsp + 0xd0], r14
mov r14d, 0
mov qword [rsp + 0xc8], r14
mov r14d, ebp
nop word cs:[rax + rax]
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], r13
mov qword [rsp + 0x180], r10
mov qword [rsp + 0x1e8], rcx
mov rdi, qword [rsp + 0x28]
shld qword [rsp + 0x98], rdi, 1
mov rcx, qword [rsp + 0x70]
shld rdi, rcx, 1
mov qword [rsp + 0x28], rdi
mov rdi, qword [rsp + 0x68]
shld rcx, rdi, 1
mov qword [rsp + 0x70], rcx
mov rcx, qword [rsp + 0x60]
shld rdi, rcx, 1
mov qword [rsp + 0x68], rdi
mov r10, qword [rsp + 0x58]
shld rcx, r10, 1
mov qword [rsp + 0x60], rcx
mov rax, qword [rsp + 0x50]
shld r10, rax, 1
mov qword [rsp + 0x58], r10
mov rcx, qword [rsp + 0x48]
shld rax, rcx, 1
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x40]
shld rcx, rax, 1
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x38]
shld rax, rcx, 1
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x90]
shld rcx, rax, 1
mov r10, rax
mov qword [rsp + 0x38], rcx
mov eax, ebp
shr eax, 0x1f
dec rax
mov ecx, esi
and ecx, 1
neg rcx
and rcx, rax
add r10, r10
mov qword [rsp + 0x90], r10
mov rax, qword [rsp + 0x120]
mov r10d, eax
and r10d, esi
test ebp, ebp
mov r13d, 0
cmovne r13, rcx
and r10d, 1
neg r10
neg r14d
test r13b, 1
cmove r14d, ebp
mov dword [rsp + 0x104], r14d
mov rcx, rsi
xor rcx, rax
and rcx, r13
xor rax, rcx
xor rcx, rsi
mov qword [rsp + 0x120], rax
and rax, r10
xor rcx, rax
mov qword [rsp + 0x1b8], rcx
mov rax, qword [rsp + 0xb8]
mov rsi, rax
mov rcx, qword [rsp + 0x128]
xor rsi, rcx
and rsi, r13
xor rcx, rsi
xor rsi, rax
mov qword [rsp + 0x128], rcx
mov rax, rcx
and rax, r10
xor rsi, rax
mov qword [rsp + 0xc0], rsi
mov rax, rdx
mov rcx, qword [rsp + 0x130]
xor rax, rcx
and rax, r13
xor rcx, rax
xor rax, rdx
mov qword [rsp + 0x130], rcx
mov rdx, rcx
and rdx, r10
xor rax, rdx
mov rdx, r8
mov rcx, qword [rsp + 0x138]
xor rdx, rcx
and rdx, r13
xor rcx, rdx
xor rdx, r8
mov r8, r9
mov rsi, qword [rsp + 0x140]
xor r8, rsi
and r8, r13
xor rsi, r8
xor r8, r9
mov qword [rsp + 0x140], rsi
mov r9, rsi
and r9, r10
xor r8, r9
mov r9, r11
xor r9, r15
and r9, r13
xor r15, r9
mov qword [rsp + 0x1e0], r15
xor r9, r11
mov r11, r15
and r11, r10
xor r9, r11
mov r11, rbx
mov r15, qword [rsp + 0x148]
xor r11, r15
and r11, r13
xor r15, r11
xor r11, rbx
mov r14, qword [rsp + 0xb0]
mov rsi, r14
mov rdi, qword [rsp + 0x150]
xor rsi, rdi
and rsi, r13
xor rdi, rsi
xor rsi, r14
mov qword [rsp + 0x150], rdi
and rdi, r10
xor rsi, rdi
mov r14, qword [rsp + 0x80]
mov rdi, r14
mov rbx, qword [rsp + 0x158]
xor rdi, rbx
and rdi, r13
xor rbx, rdi
xor rdi, r14
mov qword [rsp + 0x158], rbx
and rbx, r10
xor rdi, rbx
mov rbp, qword [rsp + 0x88]
mov rbx, rbp
mov r14, qword [rsp + 0x168]
xor rbx, r14
and rbx, r13
xor r14, rbx
xor rbx, rbp
mov qword [rsp + 0x168], r14
and r14, r10
xor rbx, r14
mov r12, qword [rsp + 0x78]
mov rbp, r12
mov r14, qword [rsp + 0x160]
xor rbp, r14
and rbp, r13
xor r14, rbp
xor rbp, r12
mov qword [rsp + 0x160], r14
and r14, r10
xor rbp, r14
mov qword [rsp + 0x78], rbp
shld rbp, rbx, 0x3f
mov qword [rsp + 0x88], rbp
shld rbx, rdi, 0x3f
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x148], r15
and r15, r10
shld rdi, rsi, 0x3f
mov qword [rsp + 0xb0], rdi
xor r11, r15
shld rsi, r11, 0x3f
mov qword [rsp + 0x1d8], rsi
shld r11, r9, 0x3f
mov qword [rsp + 0x1d0], r11
mov qword [rsp + 0x138], rcx
and rcx, r10
shld r9, r8, 0x3f
mov qword [rsp + 0x1c8], r9
xor rdx, rcx
shld r8, rdx, 0x3f
mov qword [rsp + 0x1b0], r8
shld rdx, rax, 0x3f
mov qword [rsp + 0x1c0], rdx
mov rcx, qword [rsp + 0xc0]
shld rax, rcx, 0x3f
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x1b8]
shld rcx, rax, 0x3f
mov qword [rsp + 0xc0], rcx
mov rbp, qword [rsp + 0x90]
mov rsi, rbp
mov r12, qword [rsp + 0x118]
xor rsi, r12
and rsi, r13
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0xc8]
xor rcx, rax
and rcx, r13
mov r11, qword [rsp + 0x40]
mov rax, qword [rsp + 0xd0]
xor r11, rax
and r11, r13
mov rdi, qword [rsp + 0x48]
mov rax, qword [rsp + 0xd8]
xor rdi, rax
and rdi, r13
mov r14, qword [rsp + 0x50]
mov rax, qword [rsp + 0xe0]
xor r14, rax
and r14, r13
mov rax, qword [rsp + 0x58]
xor rax, qword [rsp + 0x170]
and rax, r13
mov r9, qword [rsp + 0x60]
mov rdx, qword [rsp + 0xe8]
xor r9, rdx
and r9, r13
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0xf0]
xor rdx, r8
and rdx, r13
mov r8, qword [rsp + 0x70]
mov rbx, qword [rsp + 0xf8]
xor r8, rbx
and r8, r13
mov rbx, qword [rsp + 0x28]
xor rbx, qword [rsp + 0x178]
and rbx, r13
mov r15, qword [rsp + 0x98]
xor r15, qword [rsp + 0x180]
and r15, r13
xor rbp, rsi
xor rsi, r12
mov qword [rsp + 0x90], rbp
and rbp, r10
xor rsi, rbp
mov r13, qword [rsp + 0x38]
xor r13, rcx
xor rcx, qword [rsp + 0xc8]
mov qword [rsp + 0x38], r13
and r13, r10
xor rcx, r13
mov r13, qword [rsp + 0x40]
xor r13, r11
xor r11, qword [rsp + 0xd0]
mov qword [rsp + 0x40], r13
and r13, r10
xor r11, r13
mov r13, qword [rsp + 0x48]
xor r13, rdi
xor rdi, qword [rsp + 0xd8]
mov qword [rsp + 0x48], r13
and r13, r10
xor rdi, r13
mov r13, qword [rsp + 0x50]
xor r13, r14
xor r14, qword [rsp + 0xe0]
mov qword [rsp + 0x50], r13
and r13, r10
xor r14, r13
mov r13, qword [rsp + 0x58]
xor r13, rax
xor rax, qword [rsp + 0x170]
mov qword [rsp + 0x58], r13
and r13, r10
xor rax, r13
mov r13, qword [rsp + 0x60]
xor r13, r9
xor r9, qword [rsp + 0xe8]
mov qword [rsp + 0x60], r13
and r13, r10
xor r9, r13
mov r13, qword [rsp + 0x68]
xor r13, rdx
xor rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x68], r13
and r13, r10
xor rdx, r13
mov r13, qword [rsp + 0x70]
xor r13, r8
xor r8, qword [rsp + 0xf8]
mov qword [rsp + 0x70], r13
and r13, r10
xor r8, r13
mov r13, qword [rsp + 0x28]
xor r13, rbx
xor rbx, qword [rsp + 0x178]
mov qword [rsp + 0x28], r13
and r13, r10
xor rbx, r13
mov r13, qword [rsp + 0x98]
xor r13, r15
xor r15, qword [rsp + 0x180]
mov qword [rsp + 0x98], r13
and r10, r13
xor r15, r10
mov r10, qword [rsp + 0x78]
mov ebp, dword [rsp + 0x104]
inc ebp
shr r10, 1
mov qword [rsp + 0x78], r10
mov r10, r15
mov r15, qword [rsp + 0x1e0]
mov r13, rbx
mov qword [rsp + 0xf8], r8
mov r8, qword [rsp + 0x1b0]
mov qword [rsp + 0xf0], rdx
mov rdx, qword [rsp + 0x1c0]
mov qword [rsp + 0xe8], r9
mov r9, qword [rsp + 0x1c8]
mov qword [rsp + 0xe0], r14
mov qword [rsp + 0xd8], rdi
mov rbx, qword [rsp + 0x1d8]
mov qword [rsp + 0xd0], r11
mov r11, qword [rsp + 0x1d0]
mov qword [rsp + 0xc8], rcx
mov rcx, qword [rsp + 0x1e8]
mov qword [rsp + 0x118], rsi
mov rsi, qword [rsp + 0xc0]
mov r14d, ebp
dec rcx
jne 0x14009a330
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0xcf8], rax
mov qword [rsp + 0xd00], rdx
mov qword [rsp + 0xd08], r8
mov qword [rsp + 0xd10], r9
mov qword [rsp + 0xd18], r11
mov qword [rsp + 0xd20], rbx
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xd28], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xd30], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xd38], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xd40], rax
mov rcx, qword [rsp + 0x90]
bswap rcx
mov rax, rcx
shr rax, 4
movabs r13, 0xf0f0f0f0f0f0f0f
and rax, r13
and rcx, r13
shl rcx, 4
or rcx, rax
mov rax, rcx
movabs r15, 0x3333333333333333
and rax, r15
shr rcx, 2
and rcx, r15
lea rax, [rcx + rax*4]
mov rcx, rax
movabs rbp, 0x5555555555555555
and rcx, rbp
shr rax, 1
and rax, rbp
lea rcx, [rax + rcx*2]
mov rdx, qword [rsp + 0x38]
bswap rdx
mov rax, rdx
shr rax, 4
and rax, r13
and rdx, r13
shl rdx, 4
or rdx, rax
mov rax, rdx
and rax, r15
shr rdx, 2
and rdx, r15
lea rax, [rdx + rax*4]
mov rdx, rax
and rdx, rbp
shr rax, 1
and rax, rbp
lea r8, [rax + rdx*2]
mov rdx, qword [rsp + 0x40]
bswap rdx
mov rax, rdx
shr rax, 4
and rax, r13
and rdx, r13
shl rdx, 4
or rdx, rax
mov rax, rdx
and rax, r15
shr rdx, 2
and rdx, r15
lea rax, [rdx + rax*4]
mov rdx, rax
and rdx, rbp
shr rax, 1
and rax, rbp
lea r9, [rax + rdx*2]
mov rdx, qword [rsp + 0x48]
bswap rdx
mov rax, rdx
shr rax, 4
and rax, r13
and rdx, r13
shl rdx, 4
or rdx, rax
mov rax, rdx
and rax, r15
shr rdx, 2
and rdx, r15
lea rax, [rdx + rax*4]
mov rdx, rax
and rdx, rbp
shr rax, 1
and rax, rbp
lea r10, [rax + rdx*2]
mov rdx, qword [rsp + 0x50]
bswap rdx
mov rax, rdx
shr rax, 4
and rax, r13
and rdx, r13
shl rdx, 4
or rdx, rax
mov rax, rdx
and rax, r15
shr rdx, 2
and rdx, r15
lea rax, [rdx + rax*4]
mov rdx, rax
and rdx, rbp
shr rax, 1
and rax, rbp
lea r11, [rax + rdx*2]
mov rdx, qword [rsp + 0x58]
bswap rdx
mov rax, rdx
shr rax, 4
and rax, r13
and rdx, r13
shl rdx, 4
or rdx, rax
mov rax, rdx
and rax, r15
shr rdx, 2
and rdx, r15
lea rax, [rdx + rax*4]
mov rdx, rax
and rdx, rbp
shr rax, 1
and rax, rbp
lea rax, [rax + rdx*2]
mov rsi, qword [rsp + 0x60]
bswap rsi
mov rdx, rsi
shr rdx, 4
and rdx, r13
and rsi, r13
shl rsi, 4
or rsi, rdx
mov rdx, rsi
and rdx, r15
shr rsi, 2
and rsi, r15
lea rdx, [rsi + rdx*4]
mov rsi, rdx
and rsi, rbp
shr rdx, 1
and rdx, rbp
lea rdx, [rdx + rsi*2]
mov rdi, qword [rsp + 0x68]
bswap rdi
mov rsi, rdi
shr rsi, 4
and rsi, r13
and rdi, r13
shl rdi, 4
or rdi, rsi
mov rsi, rdi
and rsi, r15
shr rdi, 2
and rdi, r15
lea rsi, [rdi + rsi*4]
mov rdi, rsi
and rdi, rbp
shr rsi, 1
and rsi, rbp
lea rdi, [rsi + rdi*2]
mov rbx, qword [rsp + 0x70]
bswap rbx
mov rsi, rbx
shr rsi, 4
and rsi, r13
and rbx, r13
shl rbx, 4
or rbx, rsi
mov rsi, rbx
and rsi, r15
shr rbx, 2
and rbx, r15
lea rsi, [rbx + rsi*4]
mov rbx, rsi
and rbx, rbp
shr rsi, 1
and rsi, rbp
lea rbx, [rsi + rbx*2]
mov r14, qword [rsp + 0x28]
bswap r14
mov rsi, r14
shr rsi, 4
and rsi, r13
and r14, r13
shl r14, 4
or r14, rsi
mov rsi, r14
and rsi, r15
shr r14, 2
and r14, r15
lea rsi, [r14 + rsi*4]
mov r14, rsi
and r14, rbp
shr rsi, 1
and rsi, rbp
lea r14, [rsi + r14*2]
mov rbp, qword [rsp + 0x98]
bswap rbp
mov rsi, rbp
shr rsi, 4
and rsi, r13
and rbp, r13
shl rbp, 4
or rbp, rsi
mov rsi, rbp
and rsi, r15
shr rbp, 2
and rbp, r15
lea rsi, [rsi*4]
add rsi, rbp
mov r15, rsi
movabs r13, 0x5555555555555550
and r15, r13
shr rsi, 1
and rsi, r13
lea rsi, [rsi + r15*2]
shrd rsi, r14, 4
shrd r14, rbx, 4
mov qword [rsp + 0x1f8], r14
shrd rbx, rdi, 4
mov qword [rsp + 0x200], rbx
shrd rdi, rdx, 4
shrd rdx, rax, 4
mov qword [rsp + 0x208], rdi
mov qword [rsp + 0x210], rdx
shrd rax, r11, 4
mov qword [rsp + 0x218], rax
shrd r11, r10, 4
mov qword [rsp + 0x220], r11
mov r12, qword [rsp + 0x188]
lea rbp, [r12 + 0x2640]
shrd r10, r9, 4
mov qword [rsp + 0x228], r10
shrd r9, r8, 4
shrd r8, rcx, 4
mov qword [rsp + 0x230], r9
mov qword [rsp + 0x238], r8
shr rcx, 4
mov qword [rsp + 0x240], rcx
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xa0]
add rax, rcx
add rax, 0x2642
lea rcx, [rsp + 0x1f0]
xor edx, edx
xor r8d, r8d
jmp 0x14009ad57
shr rsi, 1
add rdx, 2
mov r9d, esi
and r9d, 1
mov word [rax + rdx*2 - 2], r9w
inc r8d
cmp r8d, 0x40
jne 0x14009ad90
mov rsi, qword [rcx + 8]
add rcx, 8
xor r8d, r8d
cmp rdx, 0x2bc
jne 0x14009ad9c
jmp 0x14009adc2
shr rsi, 1
cmp rdx, 0x2bc
je 0x14009adc2
mov r9d, esi
and r9d, 1
mov word [rax + rdx*2], r9w
inc r8d
cmp r8d, 0x40
jne 0x14009ad50
mov rsi, qword [rcx + 8]
add rcx, 8
xor r8d, r8d
add rdx, 2
jmp 0x14009ad57
lea rbx, [rsp + 0xcea]
lea rdi, [rbp + 0x57a]
xor r14d, r14d
lea r13, [rsp + 0x76a]
lea rsi, [rsp + 0x770]
lea r15, [rsp + 0x1f0]
nop dword [rax]
mov word [rbx + 4], 0
mov dword [rbx], 0
mov word [rdi + 4], 0
mov dword [rdi], 0
mov qword [rsp + 0x20], 0x58
mov rcx, r12
mov rdx, qword [rsp + 0x30]
mov r8, rsi
mov r9, rbp
call fcn.14009d310
movdqa xmm0, xmmword [r12 + 0x570]
xor eax, eax
movdqa xmm1, xmmword [r12 + rax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [r12 + rax]
movdqa xmmword [rsp + rax + 0x1f0], xmm0
add rax, 0x10
movdqa xmm0, xmm1
cmp rax, 0x580
jne 0x14009ae30
add word [rsp + 0x1f0], 2
mov word [rdi + 4], 0
mov dword [rdi], 0
mov word [r13 + 4], 0
mov dword [r13], 0
mov qword [rsp + 0x20], 0x58
mov rcx, r12
mov rdx, qword [rsp + 0x30]
mov r8, rbp
mov r9, r15
call fcn.14009d310
movdqa xmm0, xmmword [r12 + 0x570]
xor eax, eax
nop word [rax + rax]
movdqa xmm1, xmmword [r12 + rax + 0x580]
movdqa xmm2, xmm1
pslldq xmm2, 6
psrldq xmm0, 0xa
por xmm0, xmm2
paddw xmm0, xmmword [r12 + rax]
movdqa xmmword [r12 + rax + 0x2640], xmm0
add rax, 0x10
movdqa xmm0, xmm1
cmp rax, 0x580
jne 0x14009aec0
mov word [rdi + 4], 0
mov dword [rdi], 0
inc r14d
cmp r14d, 4
jne 0x14009adf0
mov word [rdi + 4], 0
mov dword [rdi], 0
mov r13, qword [rsp + 0x190]
mov word [r13 + 4], 0
mov dword [r13], 0
mov qword [rsp + 0x20], 0x58
mov rcx, r12
mov rdx, qword [rsp + 0x30]
mov r8, rbp
mov r15, qword [rsp + 0x198]
mov r9, r15
call fcn.14009d310
mov r14, qword [rsp + 0x110]
mov rax, qword [rsp + 0xa0]
lea rsi, [rax + r14]
add rsi, 0x580
xor eax, eax
mov rcx, qword [rsp + 0xa8]
nop word cs:[rax + rax]
movdqa xmm0, xmmword [rsi + rax - 0x10]
movdqa xmm1, xmmword [rsi + rax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [rsi + rax - 0x580]
movdqa xmmword [rcx + rax], xmm1
add rax, 0x10
cmp rax, 0x580
jne 0x14009af90
lea rbx, [rcx + 0x57a]
mov word [rcx + 0x57e], 0
mov dword [rcx + 0x57a], 0
mov word [r13 + 4], 0
mov dword [r13], 0
mov qword [rsp + 0x20], 0x58
mov rcx, r12
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0xa8]
mov r9, r15
call fcn.14009d310
mov rcx, qword [rsp + 0xa8]
xor eax, eax
mov r15, qword [rsp + 0x1a8]
nop
movdqa xmm0, xmmword [rsi + rax - 0x10]
movdqa xmm1, xmmword [rsi + rax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [rsi + rax - 0x580]
movdqa xmmword [rcx + rax], xmm1
add rax, 0x10
cmp rax, 0x580
jne 0x14009b020
mov word [rbx + 4], 0
mov dword [rbx], 0
mov eax, 0x18
movdqa xmm6, xmmword [0x1402f61b0]
nop dword [rax]
movdqu xmm0, xmmword [rcx + rax*2 - 0x30]
movdqu xmm1, xmmword [rcx + rax*2 - 0x20]
pand xmm0, xmm6
pand xmm1, xmm6
movdqu xmmword [rcx + rax*2 - 0x30], xmm0
movdqu xmmword [rcx + rax*2 - 0x20], xmm1
cmp rax, 0x2b8
je 0x14009b0bc
movdqu xmm0, xmmword [rcx + rax*2 - 0x10]
movdqu xmm1, xmmword [rcx + rax*2]
pand xmm0, xmm6
pand xmm1, xmm6
movdqu xmmword [rcx + rax*2 - 0x10], xmm0
movdqu xmmword [rcx + rax*2], xmm1
add rax, 0x20
jmp 0x14009b070
and byte [rcx + 0x561], 0x1f
and byte [rcx + 0x563], 0x1f
and byte [rcx + 0x565], 0x1f
and byte [rcx + 0x567], 0x1f
and byte [rcx + 0x569], 0x1f
and byte [rcx + 0x56b], 0x1f
and byte [rcx + 0x56d], 0x1f
and byte [rcx + 0x56f], 0x1f
and byte [rcx + 0x571], 0x1f
and byte [rcx + 0x573], 0x1f
and byte [rcx + 0x575], 0x1f
and byte [rcx + 0x577], 0x1f
and byte [rcx + 0x579], 0x1f
lea rbx, [r15 + 0x160]
mov word [rdi + 4], 0
mov dword [rdi], 0
mov rax, qword [rsp + 0x108]
mov word [rax + 4], 0
mov dword [rax], 0
mov qword [rsp + 0x20], 0x58
mov rcx, r12
mov rdx, qword [rsp + 0x30]
mov r8, rbp
mov r13, qword [rsp + 0x1a0]
mov r9, r13
call fcn.14009d310
xor eax, eax
nop word cs:[rax + rax]
movdqa xmm0, xmmword [rsi + rax - 0x10]
movdqa xmm1, xmmword [rsi + rax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [rsi + rax - 0x580]
movdqa xmmword [rbx + rax], xmm1
add rax, 0x10
cmp rax, 0x580
jne 0x14009b170
lea rdi, [rbx + 0x57a]
mov word [rbx + 0x57e], 0
mov dword [rbx + 0x57a], 0
mov rax, qword [rsp + 0x108]
mov word [rax + 4], 0
mov dword [rax], 0
mov qword [rsp + 0x20], 0x58
mov rcx, r12
mov rdx, qword [rsp + 0x30]
mov r8, rbx
mov r9, r13
call fcn.14009d310
xor eax, eax
nop
movdqa xmm0, xmmword [rsi + rax - 0x10]
movdqa xmm1, xmmword [rsi + rax]
psrldq xmm0, 0xa
pslldq xmm1, 6
por xmm1, xmm0
paddw xmm1, xmmword [rsi + rax - 0x580]
movdqa xmmword [rbx + rax], xmm1
add rax, 0x10
cmp rax, 0x580
jne 0x14009b1f0
mov word [rdi + 4], 0
mov dword [rdi], 0
mov eax, 0xc8
nop word cs:[rax + rax]
movdqu xmm0, xmmword [r15 + rax*2 - 0x30]
movdqu xmm1, xmmword [r15 + rax*2 - 0x20]
pand xmm0, xmm6
pand xmm1, xmm6
movdqu xmmword [r15 + rax*2 - 0x30], xmm0
movdqu xmmword [r15 + rax*2 - 0x20], xmm1
cmp rax, 0x368
je 0x14009b294
movdqu xmm0, xmmword [r15 + rax*2 - 0x10]
movdqu xmm1, xmmword [r15 + rax*2]
pand xmm0, xmm6
pand xmm1, xmm6
movdqu xmmword [r15 + rax*2 - 0x10], xmm0
movdqu xmmword [r15 + rax*2], xmm1
add rax, 0x20
jmp 0x14009b240
and byte [rbx + 0x561], 0x1f
and byte [rbx + 0x563], 0x1f
and byte [rbx + 0x565], 0x1f
and byte [rbx + 0x567], 0x1f
and byte [rbx + 0x569], 0x1f
and byte [rbx + 0x56b], 0x1f
and byte [rbx + 0x56d], 0x1f
and byte [rbx + 0x56f], 0x1f
and byte [rbx + 0x571], 0x1f
and byte [rbx + 0x573], 0x1f
and byte [rbx + 0x575], 0x1f
and byte [rbx + 0x577], 0x1f
and byte [rbx + 0x579], 0x1f
mov rcx, r14
call fcn.14009ea90
mov edi, 1
mov rcx, qword [rsp + 0xd48]
xor rcx, rsp
call fcn.140279500
mov eax, edi
movaps xmm6, xmmword [rsp + 0xd50]
add rsp, 0xd68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret