Function at 0x18010b2d0
Capabilities:
Decompress data using quicklz

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x138
call fcn.180188f30
sub rsp, rax
movzx r10d, byte [rdx + 2]
movzx ecx, byte [rdx + 1]
movzx r9d, byte [rdx + 0xa]
and r9d, 0xf
mov eax, r10d
shr r10, 5
shl rax, 8
shl r9, 8
or rcx, rax
movzx eax, byte [rdx]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
and ecx, 0x1fffff
and eax, 0x3ff
mov qword [rsp + 0x58], rcx
movzx ecx, byte [rdx + 5]
and ecx, 3
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 3]
shl rax, 3
shl rcx, 0xb
or rax, r10
and eax, 0x1fffff
or rcx, rax
movzx eax, byte [rdx + 6]
shl rax, 6
mov qword [rsp + 0x28], rcx
movzx ecx, byte [rdx + 5]
shr rcx, 2
or rcx, rax
movzx eax, byte [rdx + 7]
and eax, 0x7f
and ecx, 0x1fffff
shl rax, 0xe
or rcx, rax
movzx eax, byte [rdx + 9]
and eax, 0xfff
mov qword [rsp + 0x48], rcx
movzx ecx, byte [rdx + 7]
or r9, rax
movzx eax, byte [rdx + 8]
shr rcx, 7
add rax, rax
shl r9, 9
or rcx, rax
movzx eax, byte [rdx + 0xc]
and ecx, 0x1fffff
and eax, 0x1ff
or r9, rcx
movzx ecx, byte [rdx + 0xb]
mov qword [rsp + 0x50], r9
movzx r9d, byte [rdx + 0xd]
shl rcx, 4
and r9d, 1
shl r9, 8
or r9, rax
movzx eax, byte [rdx + 0xa]
shr rax, 4
shl r9, 0xc
or rcx, rax
movzx eax, byte [rdx + 0xd]
and ecx, 0x1fffff
shr rax, 1
or r9, rcx
movzx ecx, byte [rdx + 0xe]
shl rcx, 7
mov qword [rsp + 0x20], r9
movzx r9d, byte [rdx + 0x12]
or rcx, rax
movzx eax, byte [rdx + 0xf]
and r9d, 7
and eax, 0x3f
and ecx, 0x1fffff
shl r9, 8
shl rax, 0xf
or rcx, rax
movzx eax, byte [rdx + 0x11]
and eax, 0x7ff
mov qword [rsp + 0x38], rcx
or r9, rax
movzx ecx, byte [rdx + 0xf]
movzx eax, byte [rdx + 0x10]
shr rcx, 6
movzx ebx, byte [r8 + 1]
movzx r11d, byte [r8 + 5]
shl rax, 2
shl r9, 0xa
or rcx, rax
movzx eax, byte [rdx + 0x13]
and ecx, 0x1fffff
shl rax, 5
or r9, rcx
movzx ecx, byte [rdx + 0x12]
shr rcx, 3
mov qword [rsp + 0x30], r9
movzx r9d, byte [rdx + 0x1a]
or rcx, rax
movzx eax, byte [rdx + 0x14]
and r9d, 3
and ecx, 0x1fffff
shl rax, 0xd
shl r9, 8
or rcx, rax
movzx eax, byte [rdx + 0x16]
mov qword [rsp + 0x60], rcx
movzx ecx, byte [rdx + 0x17]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 0x15]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 0x19]
and eax, 0x3ff
and ecx, 0x1fffff
or r9, rax
movzx eax, byte [rdx + 0x17]
mov qword [rsp + 0x18], rcx
movzx ecx, byte [rdx + 0x18]
shr rax, 5
shl r9, 0xb
shl rcx, 3
or rcx, rax
movzx eax, byte [rdx + 0x1b]
and ecx, 0x1fffff
shl rax, 6
or r9, rcx
movzx ecx, byte [rdx + 0x1a]
shr rcx, 2
mov qword [rsp + 0x78], r9
movabs r9, 0xffffffffff
or rcx, rax
movzx eax, byte [rdx + 0x1c]
and eax, 0x7f
and ecx, 0x1fffff
shl rax, 0xe
or rcx, rax
movzx eax, byte [rdx + 0x1d]
mov qword [rsp + 0xa0], rcx
movzx ecx, byte [rdx + 0x1e]
shl rcx, 8
or rcx, rax
movabs rax, 0xffffffffffffff
and rcx, rax
movzx eax, byte [rdx + 0x1f]
and rax, r9
shl rax, 0x10
or rcx, rax
movzx eax, byte [rdx + 0x1c]
shr rax, 7
add rcx, rcx
or rcx, rax
mov qword [rsp + 0x90], rcx
movzx ecx, byte [r8 + 2]
mov eax, ecx
shl rax, 8
or rbx, rax
movzx eax, byte [r8]
shl rbx, 8
or rbx, rax
and ebx, 0x1fffff
movzx eax, byte [r8 + 4]
movzx esi, byte [r8 + 0xa]
movzx edi, byte [r8 + 6]
movzx r10d, byte [r8 + 0xd]
movzx r9d, byte [r8 + 0x12]
movzx r12d, byte [r8 + 0xe]
movzx ebp, byte [r8 + 0x12]
and eax, 0x3ff
shr rcx, 5
and r11d, 3
and esi, 0xf
shl rdi, 6
shl r11, 8
and r10d, 1
shl rsi, 8
or r11, rax
movzx eax, byte [r8 + 3]
shl r10, 8
shl rax, 3
and r9d, 7
shl r11, 0xb
or rax, rcx
movzx ecx, byte [r8 + 7]
shl r12, 7
and eax, 0x1fffff
shr rcx, 7
shl r9, 8
or r11, rax
movzx eax, byte [r8 + 5]
shr rbp, 3
shr rax, 2
or rdi, rax
movzx eax, byte [r8 + 7]
and eax, 0x7f
and edi, 0x1fffff
shl rax, 0xe
or rdi, rax
movzx eax, byte [r8 + 9]
and eax, 0xfff
mov qword [rsp + 0x80], rdi
or rsi, rax
movzx eax, byte [r8 + 8]
add rax, rax
shl rsi, 9
or rcx, rax
movzx eax, byte [r8 + 0xc]
and eax, 0x1ff
and ecx, 0x1fffff
or r10, rax
movzx eax, byte [r8 + 0xa]
or rsi, rcx
movzx ecx, byte [r8 + 0xb]
shr rax, 4
shl r10, 0xc
shl rcx, 4
or rcx, rax
movzx eax, byte [r8 + 0xd]
shr rax, 1
and ecx, 0x1fffff
or r12, rax
movzx eax, byte [r8 + 0xf]
or r10, rcx
movzx ecx, byte [r8 + 0x10]
and eax, 0x3f
and r12d, 0x1fffff
shl rax, 0xf
shl rcx, 2
mov qword [rsp + 0xc0], r10
or r12, rax
movzx eax, byte [r8 + 0x11]
and eax, 0x7ff
or r9, rax
movzx eax, byte [r8 + 0xf]
shr rax, 6
shl r9, 0xa
or rcx, rax
movzx eax, byte [r8 + 0x13]
and ecx, 0x1fffff
or r9, rcx
shl rax, 5
mov qword [rsp + 0xa8], r9
or rbp, rax
movzx r13d, byte [r8 + 0x1a]
movzx eax, byte [r8 + 0x14]
movzx r15d, byte [r8 + 0x17]
movzx ecx, byte [r8 + 0x18]
movzx r14d, byte [r8 + 0x1b]
shl rax, 0xd
shl rcx, 3
shl r15, 8
and r13d, 3
shl r14, 6
and ebp, 0x1fffff
or rbp, rax
movzx eax, byte [r8 + 0x16]
shl r13, 8
or r15, rax
movzx eax, byte [r8 + 0x15]
movabs rdx, 0xffffffffff
shl r15, 8
or r15, rax
movzx eax, byte [r8 + 0x19]
and eax, 0x3ff
and r15d, 0x1fffff
or r13, rax
movzx eax, byte [r8 + 0x17]
mov qword [rsp + 0xf0], r15
shr rax, 5
shl r13, 0xb
or rcx, rax
movzx eax, byte [r8 + 0x1a]
shr rax, 2
and ecx, 0x1fffff
or r14, rax
movzx eax, byte [r8 + 0x1c]
or r13, rcx
movzx ecx, byte [r8 + 0x1e]
and eax, 0x7f
and r14d, 0x1fffff
shl rax, 0xe
shl rcx, 8
mov qword [rsp + 0xe8], r13
or r14, rax
movzx eax, byte [r8 + 0x1d]
or rcx, rax
movabs rax, 0xffffffffffffff
and rcx, rax
movzx eax, byte [r8 + 0x1f]
and rax, rdx
shl rax, 0x10
or rcx, rax
movzx eax, byte [r8 + 0x1c]
mov r8, qword [rsp + 0x198]
movzx edx, byte [r8 + 2]
shr rax, 7
add rcx, rcx
or rcx, rax
mov eax, edx
shl rax, 8
mov qword [rsp + 8], rcx
movzx ecx, byte [r8 + 1]
or rcx, rax
movzx eax, byte [r8]
shl rcx, 8
or rcx, rax
mov eax, ebx
and ecx, 0x1fffff
mov qword [rsp + 0x10], rcx
mov rcx, qword [rsp + 0x58]
imul rax, rcx
add qword [rsp + 0x10], rax
movzx eax, byte [r8 + 6]
shl rax, 6
mov qword [rsp + 0x190], rax
movzx eax, byte [r8 + 5]
shr rax, 2
or qword [rsp + 0x190], rax
movzx eax, byte [r8 + 7]
and qword [rsp + 0x190], 0x1fffff
and eax, 0x7f
shl rax, 0xe
or qword [rsp + 0x190], rax
mov eax, ebx
imul rax, qword [rsp + 0x48]
add qword [rsp + 0x190], rax
mov rax, r11
imul rax, qword [rsp + 0x28]
add qword [rsp + 0x190], rax
mov rax, rdi
imul rax, rcx
movzx ecx, byte [r8 + 0xd]
add qword [rsp + 0x190], rax
movzx eax, byte [r8 + 0xc]
and ecx, 1
and eax, 0x1ff
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0xb]
shl rax, 4
shl rcx, 0xc
mov qword [rsp + 0x40], rcx
movzx ecx, byte [r8 + 0xa]
shr rcx, 4
or rcx, rax
mov rax, qword [rsp + 0x40]
and ecx, 0x1fffff
or rax, rcx
mov qword [rsp + 0x40], rax
mov eax, ebx
mov rcx, qword [rsp + 0x40]
imul rax, qword [rsp + 0x20]
add rcx, rax
mov rax, r11
imul rax, qword [rsp + 0x50]
add rcx, rax
mov rax, rdi
imul rax, qword [rsp + 0x48]
add rcx, rax
mov rax, rsi
imul rax, qword [rsp + 0x28]
add rcx, rax
mov rax, r10
imul rax, qword [rsp + 0x58]
add rcx, rax
movzx eax, byte [r8 + 0x11]
and eax, 0x7ff
mov qword [rsp + 0x40], rcx
movzx ecx, byte [r8 + 0x12]
and ecx, 7
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0xf]
shr rax, 6
shl rcx, 0xa
mov qword [rsp + 0x98], rcx
movzx ecx, byte [r8 + 0x10]
shl rcx, 2
or rcx, rax
mov eax, ebx
and ecx, 0x1fffff
or qword [rsp + 0x98], rcx
imul rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x98]
add rcx, rax
mov rax, r11
imul rax, qword [rsp + 0x38]
add rcx, rax
mov rax, rdi
imul rax, qword [rsp + 0x20]
add rcx, rax
mov rax, rsi
imul rax, qword [rsp + 0x50]
add rcx, rax
mov rax, r10
imul rax, qword [rsp + 0x48]
add rcx, rax
mov rax, r12
imul rax, qword [rsp + 0x28]
add rcx, rax
mov rax, r9
imul rax, qword [rsp + 0x58]
add rcx, rax
mov qword [rsp + 0x98], rcx
movzx eax, byte [r8 + 0x16]
movzx ecx, byte [r8 + 0x17]
shl rcx, 8
or rcx, rax
movzx eax, byte [r8 + 0x15]
shl rcx, 8
or rcx, rax
mov eax, ebx
and ecx, 0x1fffff
imul rax, qword [rsp + 0x18]
add rcx, rax
mov rax, r11
mov qword [rsp + 0x188], rcx
mov rcx, qword [rsp + 0x60]
imul rax, rcx
add qword [rsp + 0x188], rax
mov rax, rdi
imul rax, qword [rsp + 0x30]
add qword [rsp + 0x188], rax
mov rax, rsi
imul rax, qword [rsp + 0x38]
add qword [rsp + 0x188], rax
mov rax, r10
imul rax, qword [rsp + 0x20]
add qword [rsp + 0x188], rax
mov rax, r12
imul rax, qword [rsp + 0x50]
add qword [rsp + 0x188], rax
mov rax, r9
imul rax, qword [rsp + 0x48]
add qword [rsp + 0x188], rax
mov rax, rbp
imul rax, qword [rsp + 0x28]
add qword [rsp + 0x188], rax
mov eax, r15d
imul rax, qword [rsp + 0x58]
add qword [rsp + 0x188], rax
movzx eax, byte [r8 + 0x1b]
shl rax, 6
mov qword [rsp], rax
movzx eax, byte [r8 + 0x1a]
shr rax, 2
or qword [rsp], rax
movzx eax, byte [r8 + 0x1c]
and qword [rsp], 0x1fffff
and eax, 0x7f
mov r8, qword [rsp]
shl rax, 0xe
or r8, rax
mov eax, ebx
imul rax, qword [rsp + 0xa0]
add r8, rax
mov rax, r11
imul rax, qword [rsp + 0x78]
add r8, rax
mov rax, rdi
imul rax, qword [rsp + 0x18]
add r8, rax
mov rax, rsi
imul rax, rcx
add r8, rax
mov rax, r10
imul rax, qword [rsp + 0x30]
add r8, rax
mov rax, r12
imul rax, qword [rsp + 0x38]
add r8, rax
mov rax, r9
imul rax, qword [rsp + 0x20]
add r8, rax
mov rax, rbp
imul rax, qword [rsp + 0x50]
add r8, rax
mov eax, r15d
imul rax, qword [rsp + 0x48]
add r8, rax
mov rax, r13
imul rax, qword [rsp + 0x28]
add r8, rax
mov rax, r14
imul rax, qword [rsp + 0x58]
add r8, rax
mov rax, rdi
mov rdi, qword [rsp + 0xa0]
mov qword [rsp], r8
mov r8, qword [rsp + 0x90]
mov rcx, r11
imul rax, rdi
imul rcx, r8
add rcx, rax
mov rax, rsi
imul rax, qword [rsp + 0x78]
add rcx, rax
mov rax, r10
imul rax, qword [rsp + 0x18]
add rcx, rax
mov rax, r12
imul rax, qword [rsp + 0x60]
add rcx, rax
mov rax, r9
imul rax, qword [rsp + 0x30]
add rcx, rax
mov rax, rbp
imul rax, qword [rsp + 0x38]
add rcx, rax
mov eax, r15d
imul rax, qword [rsp + 0x20]
add rcx, rax
mov rax, r13
imul rax, qword [rsp + 0x50]
add rcx, rax
mov rax, r14
imul rax, qword [rsp + 0x48]
add rcx, rax
mov rax, qword [rsp + 8]
imul rax, qword [rsp + 0x28]
add rcx, rax
mov rax, r10
mov r10, qword [rsp + 0x78]
mov qword [rsp + 0xc8], rcx
mov rcx, rsi
imul rax, rdi
imul rcx, r8
add rcx, rax
mov rax, r12
imul rax, r10
add rcx, rax
mov rax, r9
imul rax, qword [rsp + 0x18]
add rcx, rax
mov rax, rbp
imul rax, qword [rsp + 0x60]
add rcx, rax
mov eax, r15d
imul rax, qword [rsp + 0x30]
add rcx, rax
mov rax, r13
imul rax, qword [rsp + 0x38]
add rcx, rax
mov rax, r14
imul rax, qword [rsp + 0x20]
add rcx, rax
mov rax, qword [rsp + 8]
imul rax, qword [rsp + 0x50]
add rcx, rax
mov rax, r9
mov qword [rsp + 0xb0], rcx
mov rcx, r12
imul rax, rdi
imul rcx, r8
add rcx, rax
mov rax, rbp
imul rax, r10
add rcx, rax
mov eax, r15d
imul rax, qword [rsp + 0x18]
add rcx, rax
mov rax, r13
imul rax, qword [rsp + 0x60]
add rcx, rax
mov rax, r14
imul rax, qword [rsp + 0x30]
add rcx, rax
mov rax, qword [rsp + 8]
shr rdx, 5
mov r9, rbp
imul rax, qword [rsp + 0x38]
imul r9, r8
add rcx, rax
mov eax, r15d
mov qword [rsp + 0xd8], rcx
mov rcx, qword [rsp + 8]
imul rax, rdi
add r9, rax
mov rax, r13
imul rax, r10
mov r10, r13
imul r10, r8
add r9, rax
mov rax, r14
imul rax, qword [rsp + 0x18]
add r9, rax
mov rax, rcx
imul rax, qword [rsp + 0x60]
add r9, rax
mov rax, r14
mov qword [rsp + 0xb8], r9
imul rax, rdi
add r10, rax
mov rax, rcx
mov rdi, rcx
imul rax, qword [rsp + 0x78]
imul rdi, r8
mov r8, qword [rsp + 0x10]
add r10, rax
mov rax, qword [rsp + 0x198]
movzx ecx, byte [rax + 5]
movzx eax, byte [rax + 4]
add r8, 0x100000
and eax, 0x3ff
and ecx, 3
sar r8, 0x15
shl rcx, 8
mov qword [rsp + 0x110], r8
mov qword [rsp + 0xe0], r10
or rcx, rax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0xd0], rdi
movzx eax, byte [rax + 3]
shl rcx, 0xb
shl rax, 3
or rax, rdx
mov rdx, r11
and eax, 0x1fffff
or rcx, rax
mov eax, ebx
imul rdx, qword [rsp + 0x58]
imul rax, qword [rsp + 0x28]
add rax, r8
mov r8, qword [rsp + 0x190]
add rax, rcx
mov rcx, qword [rsp + 0x198]
add r8, 0x100000
add rdx, rax
movzx eax, byte [rcx + 9]
sar r8, 0x15
mov qword [rsp + 0x70], rdx
movzx edx, byte [rcx + 0xa]
movzx ecx, byte [rcx + 8]
and eax, 0xfff
and edx, 0xf
add rcx, rcx
shl rdx, 8
mov qword [rsp + 0x118], r8
or rdx, rax
mov rax, qword [rsp + 0x198]
movzx eax, byte [rax + 7]
shl rdx, 9
shr rax, 7
or rcx, rax
mov eax, ebx
and ecx, 0x1fffff
or rdx, rcx
imul rax, qword [rsp + 0x50]
mov rcx, rsi
imul rcx, qword [rsp + 0x58]
add rdx, rax
mov rax, r11
imul rax, qword [rsp + 0x48]
add rdx, rax
mov rax, qword [rsp + 0x80]
imul rax, qword [rsp + 0x28]
add rax, r8
mov r8, qword [rsp + 0x198]
add rax, rdx
mov rdx, qword [rsp + 0x40]
add rcx, rax
movzx eax, byte [r8 + 0xd]
add rdx, 0x100000
shr rax, 1
mov qword [rsp + 0x100], rcx
movzx ecx, byte [r8 + 0xe]
shl rcx, 7
sar rdx, 0x15
or rcx, rax
movzx eax, byte [r8 + 0xf]
mov r8, qword [rsp + 0xc0]
and eax, 0x3f
and ecx, 0x1fffff
mov qword [rsp + 0x128], rdx
shl rax, 0xf
or rcx, rax
mov eax, ebx
imul rax, qword [rsp + 0x38]
add rcx, rax
mov rax, r11
imul rax, qword [rsp + 0x20]
add rcx, rax
mov rax, qword [rsp + 0x80]
imul rax, qword [rsp + 0x50]
add rcx, rax
mov rax, rsi
imul rax, qword [rsp + 0x48]
add rcx, rax
mov rax, r8
imul rax, qword [rsp + 0x28]
add rax, rdx
mov rdx, r12
add rax, rcx
imul rdx, qword [rsp + 0x58]
add rdx, rax
mov rax, qword [rsp + 0x198]
movzx ecx, byte [rax + 0x13]
movzx eax, byte [rax + 0x12]
mov qword [rsp + 0xf8], rdx
mov rdx, qword [rsp + 0x98]
shr rax, 3
shl rcx, 5
or rcx, rax
mov rax, qword [rsp + 0x198]
add rdx, 0x100000
movzx eax, byte [rax + 0x14]
and ecx, 0x1fffff
sar rdx, 0x15
shl rax, 0xd
mov qword [rsp + 0x120], rdx
or rcx, rax
mov eax, ebx
imul rax, qword [rsp + 0x60]
add rcx, rax
mov rax, r11
imul rax, qword [rsp + 0x30]
add rcx, rax
mov rax, qword [rsp + 0x80]
imul rax, qword [rsp + 0x38]
add rcx, rax
mov rax, rsi
imul rax, qword [rsp + 0x20]
add rcx, rax
mov rax, r8
imul rax, qword [rsp + 0x50]
add rcx, rax
mov rax, r12
imul rax, qword [rsp + 0x48]
add rcx, rax
mov rax, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x188]
add r8, 0x100000
imul rax, qword [rsp + 0x28]
add rax, rdx
mov rdx, rbp
add rax, rcx
mov rcx, qword [rsp + 0x198]
sar r8, 0x15
imul rdx, qword [rsp + 0x58]
add rdx, rax
movzx eax, byte [rcx + 0x19]
mov qword [rsp + 0x108], r8
and eax, 0x3ff
mov qword [rsp + 0x68], rdx
movzx edx, byte [rcx + 0x1a]
movzx ecx, byte [rcx + 0x18]
and edx, 3
shl rdx, 8
shl rcx, 3
or rdx, rax
mov rax, qword [rsp + 0x198]
movzx eax, byte [rax + 0x17]
shl rdx, 0xb
shr rax, 5
or rcx, rax
mov eax, ebx
and ecx, 0x1fffff
or rdx, rcx
mov rcx, r13
imul rax, qword [rsp + 0x78]
imul rcx, qword [rsp + 0x58]
add rdx, rax
mov rax, r11
imul rax, qword [rsp + 0x18]
add rdx, rax
mov rax, qword [rsp + 0x80]
imul rax, qword [rsp + 0x60]
add rdx, rax
mov rax, rsi
imul rax, qword [rsp + 0x30]
add rdx, rax
mov rax, qword [rsp + 0xc0]
imul rax, qword [rsp + 0x38]
add rdx, rax
mov rax, r12
imul rax, qword [rsp + 0x20]
add rdx, rax
mov rax, qword [rsp + 0xa8]
imul rax, qword [rsp + 0x50]
add rdx, rax
mov rax, rbp
imul rax, qword [rsp + 0x48]
add rdx, rax
mov eax, r15d
mov r15, qword [rsp]
add r15, 0x100000
imul rax, qword [rsp + 0x28]
add rax, r8
movabs r8, 0xffffffffff
add rax, rdx
mov rdx, qword [rsp + 0x198]
sar r15, 0x15
add rcx, rax
movzx eax, byte [rdx + 0x1d]
mov qword [rsp + 0x88], rcx
movzx ecx, byte [rdx + 0x1e]
shl rcx, 8
or rcx, rax
movabs rax, 0xffffffffffffff
and rcx, rax
movzx eax, byte [rdx + 0x1f]
and rax, r8
shl rax, 0x10
or rcx, rax
movzx eax, byte [rdx + 0x1c]
shr rax, 7
add rcx, rcx
or rcx, rax
imul rbx, qword [rsp + 0x90]
imul r11, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xc0]
mov rdx, qword [rsp + 0xf0]
add rcx, rbx
mov rbx, qword [rsp + 8]
add rcx, r11
mov r11, qword [rsp + 0x80]
imul rbx, qword [rsp + 0x58]
mov rax, r11
imul r11, qword [rsp + 0x90]
imul rax, qword [rsp + 0x78]
add rcx, rax
mov rax, rsi
imul rsi, qword [rsp + 0xa0]
imul rax, qword [rsp + 0x18]
add r11, rsi
mov rsi, qword [rsp + 8]
imul rsi, qword [rsp + 0x48]
add rcx, rax
mov rax, r8
imul rax, qword [rsp + 0x60]
add rcx, rax
mov rax, r12
imul rax, qword [rsp + 0x30]
add rcx, rax
mov rax, qword [rsp + 0xa8]
imul rax, qword [rsp + 0x38]
add rcx, rax
mov rax, rbp
imul rax, qword [rsp + 0x20]
add rcx, rax
mov rax, rdx
imul rax, qword [rsp + 0x50]
add rcx, rax
mov rax, r13
imul rax, qword [rsp + 0x48]
add rcx, rax
mov rax, r14
imul rax, qword [rsp + 0x28]
add rax, r15
add rax, rcx
mov rcx, qword [rsp + 0xa8]
add rbx, rax
mov rax, r8
mov qword [rsp + 0x198], rbx
mov rbx, qword [rsp + 0xc8]
imul r8, qword [rsp + 0x90]
add rbx, 0x100000
imul rax, qword [rsp + 0x78]
sar rbx, 0x15
add r11, rax
mov rax, r12
imul r12, qword [rsp + 0xa0]
imul rax, qword [rsp + 0x18]
add r8, r12
add r11, rax
mov rax, rcx
imul rax, qword [rsp + 0x60]
add r11, rax
mov rax, rbp
imul rax, qword [rsp + 0x30]
add r11, rax
mov rax, rdx
imul rax, qword [rsp + 0x38]
add r11, rax
mov rax, r13
imul rax, qword [rsp + 0x20]
add r11, rax
mov rax, r14
imul rax, qword [rsp + 0x50]
add rax, rbx
add rax, r11
mov r11, qword [rsp + 0xb0]
add rsi, rax
add r11, 0x100000
mov rax, rcx
sar r11, 0x15
mov qword [rsp + 0xc0], rsi
imul rax, qword [rsp + 0x78]
add r8, rax
mov rax, rbp
imul rax, qword [rsp + 0x18]
imul rcx, qword [rsp + 0x90]
imul rbp, qword [rsp + 0xa0]
mov r12, qword [rsp + 8]
add r8, rax
add rcx, rbp
mov rbp, qword [rsp + 0x78]
mov rax, rdx
imul rax, qword [rsp + 0x60]
imul r12, qword [rsp + 0x20]
add r8, rax
mov rax, r13
imul rax, qword [rsp + 0x30]
add r8, rax
mov rax, r14
imul rax, qword [rsp + 0x38]
add rax, r11
add rax, r8
mov r8, qword [rsp + 0xd8]
add r12, rax
mov rax, rdx
add r8, 0x100000
sar r8, 0x15
mov qword [rsp + 0x80], r12
imul rax, rbp
add rcx, rax
mov rax, r13
mov r13, qword [rsp + 8]
imul rax, qword [rsp + 0x18]
imul r13, qword [rsp + 0x30]
add rcx, rax
mov rax, r14
imul rax, qword [rsp + 0x60]
add rax, r8
add rax, rcx
lea rcx, [r9 + 0x100000]
mov r9, qword [rsp + 0x90]
add r13, rax
mov rax, qword [rsp + 0xe8]
sar rcx, 0x15
imul rdx, r9
mov qword [rsp + 0xa8], r13
imul rax, qword [rsp + 0xa0]
add rdx, rax
mov rax, r14
imul r14, r9
mov r9, qword [rsp + 8]
imul rax, rbp
mov rbp, qword [rsp + 8]
add rax, rcx
add rax, rdx
lea rdx, [r10 + 0x100000]
mov r10, qword [rsp + 0x88]
imul r9, qword [rsp + 0xa0]
imul rbp, qword [rsp + 0x18]
sar rdx, 0x15
add r10, 0x100000
add rbp, rax
lea rax, [rdx + r14]
lea r14, [rdi + 0x100000]
mov rdi, qword [rsp + 0x198]
add r9, rax
mov rax, qword [rsp + 0x70]
add rax, 0x100000
mov qword [rsp + 8], r9
mov r9, qword [rsp + 0x68]
sar rax, 0x15
add r9, 0x100000
sar r14, 0x15
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x100]
sar r9, 0x15
add rax, 0x100000
sar r10, 0x15
sar rax, 0x15
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0xf8]
add rax, 0x100000
sar rax, 0x15
add rdi, 0x100000
mov qword [rsp + 0x90], rax
shl rcx, 0x15
shl rdx, 0x15
shl r8, 0x15
add r13, 0x100000
add r12, 0x100000
shl r11, 0x15
sar r13, 0x15
sar r12, 0x15
shl rbx, 0x15
mov rax, r13
add rsi, 0x100000
sar rdi, 0x15
sub rax, rcx
lea rcx, [rbp + 0x100000]
sar rsi, 0x15
add qword [rsp + 0xb8], rax
sar rcx, 0x15
mov rax, rcx
neg rcx
sub rax, rdx
mov rdx, qword [rsp + 8]
shl rcx, 0x15
add qword [rsp + 0xe0], rax
add rbp, rcx
add rdx, 0x100000
sar rdx, 0x15
mov rcx, r14
shl rcx, 0x15
mov rax, rdx
neg rdx
sub rax, rcx
mov rcx, qword [rsp + 8]
shl rdx, 0x15
add qword [rsp + 0xd0], rax
add rcx, rdx
mov rax, r14
mov qword [rsp + 8], rcx
mov rdx, r14
imul rax, rax, 0xfffffffffff59083
sub rax, r8
mov r8, qword [rsp + 0xd0]
imul rdx, rdx, 0x72d18
add rax, r12
add qword [rsp + 0xd8], rax
mov rax, rcx
mov rcx, r14
imul rax, rax, 0xa6f7d
imul rcx, rcx, 0xfffffffffff0c653
sub rcx, rax
mov rax, r8
imul rax, rax, 0x215d1
add rcx, rax
mov rax, rbp
sub rcx, r11
mov r11, qword [rsp + 0xe0]
imul rax, rax, 0xa6f7d
sub rdx, rax
mov rax, qword [rsp + 8]
add rcx, rsi
add qword [rsp + 0xb0], rcx
mov rcx, r8
mov r8, qword [rsp + 0xb8]
imul rax, rax, 0xf39ad
imul rcx, rcx, 0x9fb67
sub rdx, rax
mov rax, r11
imul rax, rax, 0x215d1
add rdx, rax
sub rdx, rbx
mov rbx, qword [rsp + 0x98]
lea rax, [rdi + rdx]
add rcx, rax
mov rax, r8
add qword [rsp + 0xc8], rcx
mov rcx, qword [rsp + 0x120]
imul rax, rax, 0xa2c13
shl rcx, 0x15
sub rax, rcx
add rax, qword [rsp + 0x90]
add rbx, rax
mov qword [rsp + 0x98], rbx
mov rax, r11
mov r11, qword [rsp + 0x188]
mov rcx, r8
mov rdx, rbp
shl r15, 0x15
add rbx, 0x100000
imul rax, rax, 0xa2c13
imul rcx, rcx, 0x9fb67
sar rbx, 0x15
shl rdi, 0x15
imul rdx, rdx, 0x72d18
add rdx, rax
mov rax, qword [rsp + 0x108]
shl rax, 0x15
sub rdx, rax
lea rax, [r9 + rdx]
mov rdx, qword [rsp + 8]
shl r9, 0x15
add rcx, rax
mov rax, rbp
imul rdx, rdx, 0x72d18
add r11, rcx
mov qword [rsp + 0x188], r11
add r11, 0x100000
imul rax, rax, 0xf39ad
sub rdx, rax
mov rax, qword [rsp + 0xd0]
sar r11, 0x15
imul rax, rax, 0xa2c13
add rdx, rax
mov rax, r8
imul rax, rax, 0x215d1
add rdx, rax
sub rdx, r15
mov r15, qword [rsp + 0xe0]
lea rax, [r10 + rdx]
shl r10, 0x15
mov rcx, r15
mov rdx, r15
imul rcx, rcx, 0x9fb67
add rcx, rax
mov rax, rbp
add qword [rsp], rcx
mov rcx, r8
imul rdx, rdx, 0x72d18
imul rax, rax, 0xa2c13
imul rcx, rcx, 0x72d18
add rcx, rax
mov rax, r8
sub rcx, r9
add rcx, rbx
add qword [rsp + 0x68], rcx
imul rax, rax, 0xf39ad
imul r8, r8, 0xa6f7d
sub rdx, rax
mov rax, qword [rsp + 8]
mov rcx, rbp
imul rax, rax, 0xa2c13
imul rcx, rcx, 0x9fb67
imul rbp, rbp, 0x215d1
add rdx, rax
sub rdx, r10
mov r10, qword [rsp]
lea rax, [r11 + rdx]
add r10, 0x100000
mov rdx, r14
add rcx, rax
mov rax, r15
sar r10, 0x15
imul rdx, rdx, 0xa2c13
add qword [rsp + 0x88], rcx
sub rdx, r8
mov r8, qword [rsp + 8]
imul rax, rax, 0xf39ad
sub rdx, rax
mov rax, qword [rsp + 0xd0]
mov rcx, r8
imul rax, rax, 0x72d18
add rdx, rax
add rdx, rbp
sub rdx, rdi
mov r9, qword [rsp + 0xc8]
mov rbp, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x68]
imul rcx, rcx, 0x9fb67
imul r8, r8, 0x215d1
imul r15, r15, 0xa6f7d
lea rax, [r10 + rdx]
mov rdx, qword [rsp + 0xd0]
shl rsi, 0x15
add rcx, rax
mov rax, rdx
shl r12, 0x15
add qword [rsp + 0x198], rcx
mov rcx, r14
shl r13, 0x15
imul rdx, rdx, 0xa6f7d
imul rax, rax, 0xfffffffffff0c653
imul r14, r14, 0x215d1
sub rax, r15
mov r15, qword [rsp + 0xd8]
sub r14, rdx
add rax, r8
mov r8, qword [rsp + 0xb0]
imul rcx, rcx, 0x9fb67
sub rax, rsi
mov rsi, qword [rsp + 0x88]
sub r14, r12
mov r12, qword [rsp + 0x80]
add r9, 0x100000
add r8, 0x100000
sar r9, 0x15
sar r8, 0x15
neg r10
add rax, r9
add r14, r8
lea rdx, [r15 + 0x100000]
add rcx, rax
add r12, r14
sar rdx, 0x15
add qword [rsp + 0xc0], rcx
mov rax, rdx
shl r9, 0x15
mov r14, qword [rsp + 0xc0]
sub rax, r13
mov r13, qword [rsp + 0x198]
add rbp, rax
add r13, 0x100000
lea rcx, [r14 + 0x100000]
sar rcx, 0x15
sar r13, 0x15
shl r10, 0x15
shl r8, 0x15
shl rdx, 0x15
mov rax, r13
sub rax, r9
add rsi, 0x100000
add rdi, 0x100000
add qword [rsp + 0xc8], rax
mov rax, rcx
neg rcx
sub rax, r8
shl rcx, 0x15
sar rsi, 0x15
add qword [rsp + 0xb0], rax
add r14, rcx
lea rcx, [r12 + 0x100000]
sar rcx, 0x15
sar rdi, 0x15
mov rax, rcx
neg rcx
sub rax, rdx
shl rcx, 0x15
add r15, rax
add r12, rcx
mov rax, rbp
mov qword [rsp + 0x80], r12
imul rax, rax, 0xa6f7d
sub r10, rax
mov rax, r12
add r10, rsi
add qword [rsp], r10
mov r8, qword [rsp + 0xe8]
imul rax, rax, 0xa6f7d
mov r9, r15
shl r11, 0x15
mov rcx, rbp
shl rbx, 0x15
imul r9, r9, 0x9fb67
add r9, qword [rsp + 0x98]
mov r10, rbp
mov rdx, r14
imul rcx, rcx, 0xfffffffffff0c653
sub rcx, rax
mov rax, r15
imul rdx, rdx, 0x72d18
imul rax, rax, 0x215d1
add rcx, rax
mov rax, r14
sub rcx, r11
mov r11, r15
mov r15, r14
imul rax, rax, 0xa6f7d
add rcx, rdi
add qword [rsp + 0x188], rcx
mov rcx, r12
imul r15, r15, 0x9fb67
add r15, qword [rsp + 0x100]
imul rcx, rcx, 0xfffffffffff0c653
sub rcx, rax
mov rax, rbp
mov rbp, qword [rsp + 0xb0]
imul rax, rax, 0x72d18
add rcx, rax
mov rax, rbp
imul rax, rax, 0x215d1
add rcx, rax
sub rcx, rbx
mov rbx, qword [rsp + 0xc8]
add r9, rcx
mov rcx, qword [rsp + 0x110]
mov rax, rbx
shl rcx, 0x15
mov qword [rsp + 0xb8], r9
imul rax, rax, 0xa2c13
sub rax, rcx
mov rcx, rbx
add qword [rsp + 0x10], rax
mov rax, r14
imul rcx, rcx, 0x72d18
imul rax, rax, 0xa2c13
add rcx, rax
mov rax, r8
shl rax, 0x15
sub rcx, rax
mov rax, rbp
add qword [rsp + 0x70], rcx
mov rcx, rbx
imul rax, rax, 0xa2c13
add rdx, rax
mov rax, qword [rsp + 0x118]
imul rcx, rcx, 0x9fb67
shl rax, 0x15
sub rdx, rax
lea rax, [r8 + rdx]
mov r8, qword [rsp + 0xf0]
mov rdx, r12
add rcx, rax
mov rax, rbx
add qword [rsp + 0x190], rcx
mov rcx, rbp
imul rax, rax, 0xf39ad
imul rcx, rcx, 0x72d18
sub rcx, rax
mov rax, r12
imul rax, rax, 0xa2c13
add rcx, rax
mov rax, r8
shl rax, 0x15
sub rcx, rax
mov rax, r14
add r15, rcx
imul rax, rax, 0xf39ad
imul rdx, rdx, 0x72d18
imul r14, r14, 0x215d1
mov rcx, rbp
shl rdi, 0x15
add r9, 0x100000
shl rsi, 0x15
sub rdx, rax
mov rax, r11
sar r9, 0x15
imul rax, rax, 0xa2c13
imul rcx, rcx, 0x9fb67
add rdx, rax
mov rax, rbx
imul rax, rax, 0x215d1
imul rbx, rbx, 0xa6f7d
add rdx, rax
mov rax, qword [rsp + 0x128]
shl rax, 0x15
sub rdx, rax
lea rax, [r8 + rdx]
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x70]
add rcx, rax
mov rax, r11
add rdx, rcx
mov rcx, rbp
mov rbp, qword [rsp + 0x190]
imul rax, rax, 0x72d18
mov qword [rsp + 0x40], rdx
add rbp, 0x100000
imul rcx, rcx, 0xfffffffffff0c653
sub rcx, rbx
mov rbx, qword [rsp + 0x10]
sar rbp, 0x15
add rcx, rax
mov rax, r10
add rbx, 0x100000
sar rbx, 0x15
add r15, rbp
add r8, rbx
imul rax, rax, 0xa2c13
add rcx, rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x70], r8
add rcx, r14
shl rax, 0x15
mov r14, r12
sub rcx, rax
lea r12, [rdx + 0x100000]
mov rdx, qword [rsp + 0x188]
imul r14, r14, 0x9fb67
add r14, qword [rsp + 0xf8]
mov rax, r11
add rdx, 0x100000
add r14, rcx
mov rcx, qword [rsp + 0xb0]
imul r11, r11, 0xa6f7d
imul rax, rax, 0xfffffffffff0c653
sar rdx, 0x15
sar r12, 0x15
add r14, r12
imul rcx, rcx, 0xa6f7d
sub rax, rcx
mov rcx, qword [rsp + 0x80]
imul rcx, rcx, 0x215d1
add rax, rcx
mov rcx, r10
imul r10, r10, 0x215d1
sub rax, rdi
mov rdi, qword [rsp + 0x88]
sub r10, r11
add rax, r9
imul rcx, rcx, 0x9fb67
add rcx, rax
sub r10, rsi
add qword [rsp + 0x68], rcx
mov rcx, qword [rsp]
add r10, rdx
add rdi, r10
add rcx, 0x100000
mov qword [rsp + 0x88], rdi
mov rsi, qword [rsp + 0x198]
sar rcx, 0x15
shl rdx, 0x15
mov rax, rcx
shl rcx, 0x15
shl r9, 0x15
shl r13, 0x15
add r8, 0x100000
shl rbx, 0x15
sub rax, r13
mov r13, qword [rsp + 0xb8]
sar r8, 0x15
add rsi, rax
lea r11, [r14 + 0x100000]
shl rbp, 0x15
sar r11, 0x15
add rdi, 0x100000
mov qword [rsp + 0x198], rsi
mov rax, r11
sar rdi, 0x15
add rsi, 0x100000
sub rax, r9
mov r9, qword [rsp + 0x68]
sar rsi, 0x15
add r13, rax
add r9, 0x100000
lea r10, [r15 + 0x100000]
sar r9, 0x15
sar r10, 0x15
shl r12, 0x15
mov rax, r9
shl r11, 0x15
sub rax, rdx
mov rdx, qword [rsp + 0x70]
add qword [rsp + 0x188], rax
mov rax, rdi
sub rax, rcx
mov rcx, rsi
add qword [rsp], rax
mov rax, rsi
imul rcx, rcx, 0x72d18
imul rax, rax, 0xa2c13
sub rax, rbx
mov rbx, qword [rsp + 0x10]
add rbx, rax
mov rax, r8
shl rax, 0x15
mov qword [rsp + 0x10], rbx
sub rcx, rax
mov rax, rsi
add rdx, rcx
mov rcx, rsi
imul rax, rax, 0x9fb67
sub rax, rbp
mov rbp, qword [rsp + 0x40]
imul rcx, rcx, 0xf39ad
add rax, r8
mov r8, qword [rsp + 0x190]
add r8, rax
mov rax, r10
neg rax
shl rax, 0x15
sub rax, rcx
mov rcx, rbx
add r15, rax
sar rcx, 0x15
mov rax, rsi
add rdx, rcx
mov qword [rsp + 0x70], rdx
sar rdx, 0x15
imul rax, rax, 0x215d1
sub rax, r12
add r8, rdx
add rax, r10
mov qword [rsp + 0x190], r8
add rbp, rax
mov rax, rsi
imul rax, rax, 0xfffffffffff59083
sub rax, r11
add r14, rax
sar r8, 0x15
shl rcx, 0x15
add r15, r8
shl r9, 0x15
shl rdi, 0x15
shl rsi, 0x15
shl rdx, 0x15
mov r10, r15
shl r8, 0x15
sar r10, 0x15
add rbp, r10
mov r11, rbp
mov qword [rsp + 0x40], rbp
sar r11, 0x15
add r14, r11
mov rbx, r14
sar rbx, 0x15
add r13, rbx
mov rbp, r13
mov qword [rsp + 0xb8], r13
sar rbp, 0x15
mov rax, rbp
sub rax, r9
mov r9, qword [rsp + 0x68]
add r9, rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x68], r9
sar r9, 0x15
add rax, r9
mov r12, rax
mov qword [rsp + 0x188], rax
sar r12, 0x15
mov rax, r12
sub rax, rdi
mov rdi, qword [rsp + 0x88]
add rdi, rax
mov rax, qword [rsp]
mov qword [rsp + 0x88], rdi
sar rdi, 0x15
add rax, rdi
mov r13, rax
mov qword [rsp], rax
sar r13, 0x15
mov rax, r13
sub rax, rsi
mov rsi, qword [rsp + 0x198]
add rsi, rax
mov qword [rsp + 0x198], rsi
sar rsi, 0x15
mov rax, rsi
imul rax, rax, 0xa2c13
sub rax, rcx
mov rcx, qword [rsp + 0x10]
add rcx, rax
mov rax, rsi
mov qword [rsp + 0x10], rcx
sar rcx, 0x15
imul rax, rax, 0x72d18
sub rax, rdx
mov rdx, qword [rsp + 0x70]
add rax, rcx
neg rcx
add rdx, rax
shl rcx, 0x15
mov rax, rsi
add qword [rsp + 0x10], rcx
mov rcx, rdx
imul rax, rax, 0x9fb67
sub rax, r8
mov r8, qword [rsp + 0x190]
sar rcx, 0x15
add rax, rcx
neg rcx
shl rcx, 0x15
add r8, rax
mov rax, rsi
add rdx, rcx
mov rcx, r8
sar rcx, 0x15
mov qword [rsp + 0x70], rdx
imul rax, rax, 0xf39ad
neg r10
mov rdx, qword [rsp + 0x40]
shl r10, 0x15
shl rbx, 0x15
sub r10, rax
shl r11, 0x15
shl r9, 0x15
add r10, rcx
neg rcx
mov rax, rsi
shl rcx, 0x15
add r15, r10
mov r10, qword [rsp + 0x68]
imul rax, rax, 0x215d1
add r8, rcx
sub rax, r11
mov r11, qword [rsp]
mov rcx, r15
shl rbp, 0x15
shl r12, 0x15
sar rcx, 0x15
shl rdi, 0x15
shl r13, 0x15
add rax, rcx
neg rcx
mov qword [rsp + 0x190], r8
shl rcx, 0x15
add rdx, rax
mov rax, rsi
add r15, rcx
mov rcx, rdx
sar rcx, 0x15
imul rax, rax, 0xfffffffffff59083
sub rax, rbx
mov rbx, qword [rsp + 0x188]
add rax, rcx
neg rcx
shl rcx, 0x15
add r14, rax
add rdx, rcx
mov rcx, r14
sar rcx, 0x15
mov qword [rsp + 0x40], rdx
mov rdx, qword [rsp + 0xb8]
mov rax, rcx
neg rcx
shl rcx, 0x15
sub rax, rbp
add r14, rcx
add rdx, rax
mov rcx, rdx
sar rcx, 0x15
mov rax, rcx
neg rcx
shl rcx, 0x15
sub rax, r9
mov r9, qword [rsp + 0x88]
add rdx, rcx
add r10, rax
mov rcx, r10
sar rcx, 0x15
mov rax, rcx
neg rcx
shl rcx, 0x15
sub rax, r12
add r10, rcx
add rbx, rax
mov rcx, rbx
sar rcx, 0x15
mov rax, rcx
neg rcx
shl rcx, 0x15
sub rax, rdi
add r9, rax
add rbx, rcx
mov rcx, r9
sar rcx, 0x15
mov rax, rcx
neg rcx
sub rax, r13
add r11, rax
shl rcx, 0x15
mov rdi, qword [rsp + 0x10]
mov r8, qword [rsp + 0x198]
add r9, rcx
shl rsi, 0x15
mov rcx, r11
sar rcx, 0x15
mov rax, rcx
neg rcx
sub rax, rsi
mov rsi, qword [rsp + 0x180]
shl rcx, 0x15
add r8, rax
add r11, rcx
mov rcx, qword [rsp + 0x70]
mov rax, rdi
mov byte [rsi], dil
sar rdi, 0x10
sar rax, 8
mov byte [rsi + 1], al
movzx eax, cl
shl al, 5
or dil, al
mov rax, rcx
sar rax, 3
mov byte [rsi + 2], dil
mov rdi, qword [rsp + 0x190]
mov byte [rsi + 3], al
mov rax, rcx
sar rcx, 0x13
sar rax, 0xb
mov byte [rsi + 4], al
movzx eax, dil
shl al, 2
or cl, al
mov rax, rdi
sar rdi, 0xe
sar rax, 6
mov byte [rsi + 5], cl
mov rcx, qword [rsp + 0x40]
mov byte [rsi + 6], al
movzx eax, r15b
shl al, 7
or dil, al
mov rax, r15
sar rax, 1
mov byte [rsi + 7], dil
mov byte [rsi + 8], al
mov rax, r15
sar r15, 0x11
sar rax, 9
mov byte [rsi + 9], al
movzx eax, cl
shl al, 4
or r15b, al
mov rax, rcx
sar rax, 4
mov byte [rsi + 0xa], r15b
mov byte [rsi + 0xb], al
mov rax, rcx
sar rcx, 0x14
sar rax, 0xc
mov byte [rsi + 0xc], al
movzx eax, r14b
add al, al
or cl, al
mov rax, r14
sar r14, 0xf
sar rax, 7
mov byte [rsi + 0xd], cl
mov byte [rsi + 0xe], al
movzx eax, dl
shl al, 6
or r14b, al
mov rax, rdx
sar rax, 2
mov byte [rsi + 0xf], r14b
mov byte [rsi + 0x10], al
mov rax, rdx
sar rax, 0xa
sar rdx, 0x12
mov byte [rsi + 0x11], al
movzx eax, r10b
mov byte [rsi + 0x15], bl
shl al, 3
or dl, al
mov rax, r10
sar r10, 0xd
sar rax, 5
mov byte [rsi + 0x12], dl
mov byte [rsi + 0x14], r10b
mov byte [rsi + 0x13], al
mov rax, rbx
sar rbx, 0x10
sar rax, 8
mov byte [rsi + 0x16], al
movzx eax, r9b
shl al, 5
or bl, al
mov rax, r9
sar rax, 3
mov byte [rsi + 0x17], bl
mov byte [rsi + 0x18], al
mov rax, r9
sar r9, 0x13
sar rax, 0xb
mov byte [rsi + 0x19], al
movzx eax, r11b
shl al, 2
or r9b, al
mov rax, r11
sar r11, 0xe
sar rax, 6
mov byte [rsi + 0x1a], r9b
mov byte [rsi + 0x1b], al
movzx eax, r8b
shl al, 7
or r11b, al
mov rax, r8
sar rax, 1
mov byte [rsi + 0x1c], r11b
mov byte [rsi + 0x1d], al
mov rax, r8
sar rax, 9
sar r8, 0x11
mov byte [rsi + 0x1f], r8b
mov byte [rsi + 0x1e], al
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret