Function at 0x14003e630
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x458
mov r14, r9
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x14039fd98]
xor rax, rsp
mov qword [rsp + 0x450], rax
lea r8, [rsp + 0x3a0]
mov edx, 0x20
mov rcx, r9
call fcn.140069f60
and byte [rsp + 0x3a0], 0xf8
movzx eax, byte [rsp + 0x3bf]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0x3bf], al
lea r15, [rsp + 0x2c8]
mov rcx, r15
call fcn.14006b690
lea rdx, [rsp + 0x3c0]
mov r8d, 0x20
mov rcx, r15
call fcn.14006b720
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.14006b720
lea r12, [rsp + 0x280]
mov rcx, r12
mov rdx, r15
call fcn.14006b810
mov rcx, r12
call fcn.14003d6e0
lea r8, [0x1402de700]
lea r13, [rsp + 0x1e0]
mov rcx, r13
mov rdx, r12
call fcn.14003c840
mov rax, qword [rsp + 0x250]
mov qword [rsp + 0x1c0], rax
movups xmm0, xmmword [rsp + 0x230]
movups xmm1, xmmword [rsp + 0x240]
movaps xmmword [rsp + 0x1b0], xmm1
movaps xmmword [rsp + 0x1a0], xmm0
lea r12, [rsp + 0x408]
lea rdx, [rsp + 0x1a0]
mov rcx, r12
call fcn.1400437e0
lea rbp, [rsp + 0x1a0]
mov rcx, rbp
mov rdx, r13
mov r8, r12
call fcn.140046220
lea rdx, [rsp + 0x208]
lea r13, [rsp + 0x3e0]
mov rcx, r13
mov r8, r12
call fcn.140046220
mov qword [rsp + 0x198], rsi
mov rcx, rsi
mov rdx, r13
call fcn.140038d60
lea rcx, [rsp + 0x430]
mov rdx, rbp
call fcn.140038d60
movzx eax, byte [rsp + 0x430]
shl al, 7
xor byte [rsi + 0x1f], al
mov rcx, r15
call fcn.14006b690
mov r8d, 0x20
mov rcx, r15
mov rdx, rsi
call fcn.14006b720
add r14, 0x20
mov r8d, 0x20
mov rcx, r15
mov rdx, r14
call fcn.14006b720
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.14006b720
lea rdi, [rsp + 0x1a0]
mov rcx, rdi
mov rdx, r15
call fcn.14006b810
mov rcx, rdi
call fcn.14003d6e0
movzx eax, word [rsp + 0x1a0]
movzx ecx, byte [rsp + 0x1a2]
movzx r8d, byte [rsp + 0x1a3]
shl r8d, 8
movzx edx, byte [rsp + 0x1a4]
shl edx, 0x10
or edx, r8d
movzx r8d, byte [rsp + 0x1a5]
movzx r9d, byte [rsp + 0x1a6]
shl r9d, 8
movzx r10d, byte [rsp + 0x1a7]
movzx esi, byte [rsp + 0x1a8]
shl esi, 8
movzx r11d, byte [rsp + 0x1a9]
shl r11d, 0x10
or r11d, esi
movzx esi, byte [rsp + 0x1aa]
movzx ebx, byte [rsp + 0x1ab]
shl ebx, 8
movzx edi, byte [rsp + 0x1ac]
shl edi, 0x10
or edi, ebx
movzx ebx, byte [rsp + 0x1ad]
movzx ebp, byte [rsp + 0x1ae]
shl ebp, 8
movzx r15d, byte [rsp + 0x1b0]
shl r15d, 8
movzx r14d, byte [rsp + 0x1b1]
shl r14d, 0x10
or r14d, r15d
movzx r15d, byte [rsp + 0x1b3]
shl r15, 8
movzx r12d, byte [rsp + 0x1b4]
shl r12, 0x10
or r12, r15
movzx r15d, byte [rsp + 0x1b2]
or r12, r15
mov qword [rsp + 0x78], r12
shl r15d, 0x18
or r15d, r14d
movzx r14d, byte [rsp + 0x1af]
or r15d, r14d
mov qword [rsp + 0x68], r15
shl r14d, 0x10
or r14d, ebp
or r14d, ebx
mov qword [rsp + 0x38], r14
shl ebx, 0x18
or ebx, edi
or ebx, esi
mov qword [rsp + 0xb0], rbx
shl esi, 0x18
or esi, r11d
or esi, r10d
mov qword [rsp + 0xa0], rsi
shl r10d, 0x10
or r10d, r9d
or r10d, r8d
mov qword [rsp + 0x98], r10
mov ebp, r8d
shl ebp, 0x18
or ebp, edx
or ebp, ecx
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov r12, rcx
movzx eax, word [rsp + 0x1b5]
movzx ecx, byte [rsp + 0x1b7]
movzx r8d, byte [rsp + 0x1b8]
shl r8d, 8
movzx edx, byte [rsp + 0x1b9]
shl edx, 0x10
or edx, r8d
movzx r8d, byte [rsp + 0x1bb]
shl r8d, 8
movzx r9d, byte [rsp + 0x1bd]
shl r9, 8
movzx r10d, byte [rsp + 0x1be]
shl r10, 0x10
or r10, r9
movzx r11d, byte [rsp + 0x1bf]
shl r11, 0x18
or r11, r10
movzx r9d, byte [rsp + 0x1bc]
or r11, r9
mov qword [rsp + 0xd8], r11
shl r9d, 0x10
or r9d, r8d
movzx r8d, byte [rsp + 0x1ba]
or r9d, r8d
mov qword [rsp + 0xd0], r9
shl r8d, 0x18
or r8d, edx
or r8d, ecx
mov qword [rsp + 0x80], r8
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov qword [rsp + 0x60], rcx
movzx eax, byte [rsp + 0x3a3]
shl eax, 8
movzx r8d, byte [rsp + 0x3a4]
shl r8d, 0x10
or r8d, eax
movzx ecx, byte [rsp + 0x3a8]
shl ecx, 8
movzx eax, byte [rsp + 0x3a9]
shl eax, 0x10
or eax, ecx
movzx edx, byte [rsp + 0x3ab]
shl edx, 8
movzx ecx, byte [rsp + 0x3ac]
shl ecx, 0x10
or ecx, edx
movzx r9d, byte [rsp + 0x3b0]
shl r9d, 8
movzx edx, byte [rsp + 0x3b1]
shl edx, 0x10
or edx, r9d
movzx r9d, byte [rsp + 0x3b3]
shl r9, 8
movzx r10d, byte [rsp + 0x3b4]
shl r10, 0x10
or r10, r9
movzx r9d, byte [rsp + 0x3b2]
or r10, r9
mov qword [rsp + 0x88], r10
mov r10d, r9d
shl r10d, 0x18
or r10d, edx
movzx edx, byte [rsp + 0x3ae]
shl edx, 8
movzx r9d, byte [rsp + 0x3af]
or r10d, r9d
mov qword [rsp + 0x30], r10
shl r9d, 0x10
or r9d, edx
movzx edx, byte [rsp + 0x3ad]
or r9d, edx
mov qword [rsp + 0x28], r9
mov r11d, edx
shl r11d, 0x18
or r11d, ecx
movzx ecx, byte [rsp + 0x3aa]
or r11d, ecx
mov r14d, ecx
shl r14d, 0x18
or r14d, eax
movzx eax, byte [rsp + 0x3a6]
shl eax, 8
movzx ecx, byte [rsp + 0x3a7]
or r14d, ecx
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x3a5]
or ecx, eax
mov rbx, rcx
mov ecx, eax
shl ecx, 0x18
or ecx, r8d
movzx eax, byte [rsp + 0x3a2]
or ecx, eax
mov r9, rcx
mov edi, eax
and edi, 0x1f
shl edi, 0x10
movzx eax, word [rsp + 0x3a0]
or rdi, rax
movzx ecx, byte [rsp + 0x3b8]
shl ecx, 8
movzx eax, byte [rsp + 0x3b9]
shl eax, 0x10
or eax, ecx
movzx ecx, byte [rsp + 0x3bd]
shl rcx, 8
movzx edx, byte [rsp + 0x3be]
shl rdx, 0x10
or rdx, rcx
movzx r8d, byte [rsp + 0x3bf]
shl r8, 0x18
or r8, rdx
movzx ecx, byte [rsp + 0x3bb]
shl ecx, 8
movzx edx, byte [rsp + 0x3bc]
or r8, rdx
mov qword [rsp + 0x58], r8
shl edx, 0x10
or edx, ecx
movzx ecx, byte [rsp + 0x3ba]
or edx, ecx
mov qword [rsp + 0x90], rdx
shl ecx, 0x18
or ecx, eax
movzx eax, byte [rsp + 0x3b7]
or ecx, eax
mov qword [rsp + 0xa8], rcx
mov ecx, eax
and ecx, 0x1f
shl ecx, 0x10
movzx eax, word [rsp + 0x3b5]
or rcx, rax
mov qword [rsp + 0x40], rcx
movzx eax, byte [rsp + 0x283]
shl eax, 8
movzx r8d, byte [rsp + 0x284]
shl r8d, 0x10
or r8d, eax
movzx ecx, byte [rsp + 0x288]
shl ecx, 8
movzx eax, byte [rsp + 0x289]
shl eax, 0x10
or eax, ecx
movzx edx, byte [rsp + 0x28b]
shl edx, 8
movzx ecx, byte [rsp + 0x28c]
shl ecx, 0x10
or ecx, edx
movzx r10d, byte [rsp + 0x290]
shl r10d, 8
movzx edx, byte [rsp + 0x291]
shl edx, 0x10
or edx, r10d
movzx r10d, byte [rsp + 0x293]
shl r10, 8
movzx esi, byte [rsp + 0x294]
shl rsi, 0x10
or rsi, r10
movzx r10d, byte [rsp + 0x292]
or rsi, r10
mov qword [rsp + 0xe0], rsi
mov esi, r10d
shl esi, 0x18
or esi, edx
movzx edx, byte [rsp + 0x28e]
shl edx, 8
movzx r10d, byte [rsp + 0x28f]
or esi, r10d
mov qword [rsp + 0x128], rsi
mov esi, r10d
shl esi, 0x10
or esi, edx
movzx edx, byte [rsp + 0x28d]
or esi, edx
shl edx, 0x18
or edx, ecx
movzx ecx, byte [rsp + 0x28a]
or edx, ecx
mov qword [rsp + 0x120], rdx
mov edx, ecx
shl edx, 0x18
or edx, eax
movzx eax, byte [rsp + 0x286]
shl eax, 8
movzx ecx, byte [rsp + 0x287]
or edx, ecx
mov qword [rsp + 0x118], rdx
shl ecx, 0x10
or ecx, eax
movzx eax, byte [rsp + 0x285]
or ecx, eax
mov qword [rsp + 0x110], rcx
mov ecx, eax
shl ecx, 0x18
or ecx, r8d
movzx eax, byte [rsp + 0x282]
or ecx, eax
mov qword [rsp + 0x130], rcx
mov ecx, eax
and ecx, 0x1f
shl ecx, 0x10
movzx eax, word [rsp + 0x280]
or rcx, rax
mov qword [rsp + 0x108], rcx
movzx ecx, byte [rsp + 0x298]
shl ecx, 8
movzx eax, byte [rsp + 0x299]
shl eax, 0x10
or eax, ecx
movzx ecx, byte [rsp + 0x29d]
shl rcx, 8
movzx edx, byte [rsp + 0x29e]
shl rdx, 0x10
or rdx, rcx
movzx r8d, byte [rsp + 0x29f]
shl r8, 0x18
or r8, rdx
movzx ecx, byte [rsp + 0x29b]
shl ecx, 8
movzx edx, byte [rsp + 0x29c]
or r8, rdx
mov qword [rsp + 0x100], r8
shl edx, 0x10
or edx, ecx
movzx ecx, byte [rsp + 0x29a]
or edx, ecx
mov qword [rsp + 0x190], rdx
shl ecx, 0x18
or ecx, eax
mov qword [rsp + 0x188], rcx
mov r8, rbp
shr r8d, 5
and r8d, 0x1fffff
shr r9d, 5
and r9d, 0x1fffff
mov rax, r9
mov rdx, r9
mov r10, r12
imul rax, r12
mov r12, rdi
mov rcx, rdi
imul rcx, r8
add rcx, rax
mov qword [rsp + 0x180], rcx
mov rdi, qword [rsp + 0x98]
shr edi, 2
and edi, 0x1fffff
shr ebx, 2
and ebx, 0x1fffff
mov rax, rbx
mov r9, rbx
mov qword [rsp + 0x48], rbx
imul rax, r10
mov rcx, r12
imul rcx, rdi
mov rbx, rdi
add rcx, rax
mov rax, rdx
imul rax, r8
add rcx, rax
mov qword [rsp + 0x178], rcx
shr r14d, 7
and r14d, 0x1fffff
mov rax, r14
imul rax, r10
mov rcx, r9
imul rcx, r8
add rcx, rax
mov rbp, qword [rsp + 0xa0]
shr ebp, 7
and ebp, 0x1fffff
mov rax, rdx
mov r13, rdx
imul rax, rdi
mov rdx, r12
imul rdx, rbp
mov rdi, rbp
add rdx, rax
add rdx, rcx
mov qword [rsp + 0xf8], rdx
mov rax, r14
imul rax, r8
mov rcx, r9
imul rcx, rbx
add rcx, rax
mov r9, qword [rsp + 0xb0]
shr r9d, 4
and r9d, 0x1fffff
mov rax, r13
imul rax, rbp
mov rdx, r12
imul rdx, r9
add rdx, rax
add rdx, rcx
shr r11d, 4
and r11d, 0x1fffff
mov rax, r11
mov qword [rsp + 0xc8], r10
imul rax, r10
add rdx, rax
mov qword [rsp + 0x170], rdx
mov r15, qword [rsp + 0x28]
shr r15d, 1
and r15d, 0x1fffff
mov rax, r15
imul rax, r10
mov rdx, r11
mov qword [rsp + 0x50], r11
mov qword [rsp + 0xc0], r8
imul rdx, r8
add rdx, rax
shr esi, 1
and esi, 0x1fffff
add rdx, rsi
mov qword [rsp + 0x168], rdx
mov rax, r14
imul rax, rbx
mov rsi, qword [rsp + 0x48]
mov rcx, rsi
mov qword [rsp + 0xa0], rbp
imul rcx, rbp
add rcx, rax
mov rbp, qword [rsp + 0x38]
shr ebp, 1
and ebp, 0x1fffff
mov rax, r13
imul rax, r9
mov rdx, r12
imul rdx, rbp
add rdx, rax
add rdx, rcx
mov qword [rsp + 0xf0], rdx
mov r10, r15
mov qword [rsp + 0x28], r15
mov rax, r15
imul rax, r8
mov rcx, r11
imul rcx, rbx
mov qword [rsp + 0x98], rbx
add rcx, rax
mov r11, qword [rsp + 0x30]
shr r11d, 6
and r11d, 0x1fffff
mov rax, r11
mov r15, qword [rsp + 0xc8]
imul rax, r15
add rcx, rax
mov rax, r14
mov qword [rsp + 0x70], r14
imul rax, rdi
mov rdx, rsi
imul rdx, r9
mov rsi, r9
add rdx, rax
mov r9, qword [rsp + 0x68]
shr r9d, 6
and r9d, 0x1fffff
mov qword [rsp + 0x68], r9
mov rax, r13
imul rax, rbp
mov r8, r12
imul r8, r9
add r8, rax
add r8, rdx
add r8, rcx
mov qword [rsp + 0x160], r8
mov qword [rsp + 0x30], r11
imul r11, qword [rsp + 0xc0]
mov rcx, r10
imul rcx, rbx
add rcx, r11
mov rdi, qword [rsp + 0x88]
shr rdi, 3
mov rax, rdi
mov qword [rsp + 0x88], rdi
imul rax, r15
mov r11, r15
add rcx, rax
mov r15, qword [rsp + 0x50]
mov rax, r15
mov r9, qword [rsp + 0xa0]
imul rax, r9
mov rdx, r14
imul rdx, rsi
add rdx, rax
mov r10, qword [rsp + 0x78]
shr r10, 3
mov qword [rsp + 0x78], r10
mov rax, qword [rsp + 0x48]
imul rax, rbp
mov r8, r12
imul r8, r10
add r8, rax
mov rax, r13
mov qword [rsp + 0xb8], r13
mov r14, qword [rsp + 0x68]
imul rax, r14
add r8, rax
add r8, rdx
add r8, rcx
mov qword [rsp + 0xe8], r8
mov rbx, qword [rsp + 0x40]
mov rax, rbx
imul rax, r11
mov rcx, rdi
mov r8, qword [rsp + 0xc0]
imul rcx, r8
add rcx, rax
movzx eax, word [rsp + 0x295]
add rcx, rax
mov rax, qword [rsp + 0x28]
imul rax, r9
mov rdx, r15
mov r11, rsi
mov qword [rsp + 0xb0], rsi
imul rdx, rsi
add rdx, rax
mov rax, qword [rsp + 0x30]
mov r9, qword [rsp + 0x98]
imul rax, r9
add rdx, rax
mov rax, qword [rsp + 0x70]
mov rdi, rbp
mov qword [rsp + 0x38], rbp
imul rax, rbp
mov rbp, qword [rsp + 0x48]
mov r10, rbp
imul r10, r14
add r10, rax
mov rsi, r13
imul rsi, qword [rsp + 0x78]
mov r15, r12
mov rax, qword [rsp + 0x60]
imul r15, rax
add r15, rsi
add r15, r10
add r15, rdx
add r15, rcx
mov qword [rsp + 0x158], r15
imul rbx, r8
mov rcx, qword [rsp + 0x88]
imul rcx, r9
add rcx, rbx
mov rsi, qword [rsp + 0xa8]
shr esi, 5
and esi, 0x1fffff
mov rdx, rsi
mov r9, rsi
mov qword [rsp + 0xa8], rsi
mov r13, qword [rsp + 0xc8]
imul rdx, r13
add rcx, rdx
mov rdx, qword [rsp + 0x28]
imul rdx, r11
mov r10, qword [rsp + 0x50]
imul r10, rdi
add r10, rdx
mov r8, qword [rsp + 0x30]
mov rdx, r8
mov rbx, qword [rsp + 0xa0]
imul rdx, rbx
add r10, rdx
mov rsi, qword [rsp + 0x70]
mov rdx, rsi
imul rdx, r14
mov r15, rbp
mov r14, qword [rsp + 0x78]
imul r15, r14
add r15, rdx
mov r11, qword [rsp + 0x80]
shr r11d, 5
and r11d, 0x1fffff
mov qword [rsp + 0x80], r11
mov rdi, qword [rsp + 0xb8]
mov rdx, rdi
imul rdx, rax
mov rax, r12
imul rax, r11
add rax, rdx
add rax, r15
add rax, r10
add rax, rcx
mov qword [rsp + 0x150], rax
mov rdx, r9
imul rdx, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0x40]
mov rcx, rbp
imul rcx, qword [rsp + 0x98]
add rcx, rdx
mov rdx, qword [rsp + 0x90]
shr edx, 2
and edx, 0x1fffff
mov qword [rsp + 0x90], rdx
imul rdx, r13
add rcx, rdx
mov rdx, r8
mov r8, qword [rsp + 0xb0]
imul rdx, r8
mov r10, qword [rsp + 0x28]
imul r10, qword [rsp + 0x38]
add r10, rdx
mov rdx, qword [rsp + 0x88]
imul rdx, rbx
add r10, rdx
mov rbx, qword [rsp + 0x50]
mov rdx, rbx
mov r11, qword [rsp + 0x68]
imul rdx, r11
mov r15, rsi
imul r15, r14
add r15, rdx
mov r9, qword [rsp + 0xd0]
shr r9d, 2
and r9d, 0x1fffff
mov qword [rsp + 0xd0], r9
mov r13, qword [rsp + 0x48]
mov rdx, r13
imul rdx, qword [rsp + 0x60]
mov rax, r12
imul rax, r9
add rax, rdx
mov rsi, qword [rsp + 0x80]
imul rdi, rsi
add rax, rdi
add rax, r15
add rax, r10
add rax, rcx
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x58]
shr rax, 7
mov qword [rsp + 0x58], rax
mov r10, qword [rsp + 0x100]
shr r10, 7
mov rdx, r12
mov rcx, qword [rsp + 0xc8]
imul rdx, rcx
mov qword [rsp + 0x100], rdx
imul rcx, rax
add rcx, r10
mov qword [rsp + 0xc8], rcx
mov r15, qword [rsp + 0xa0]
imul rbp, r15
mov rcx, qword [rsp + 0x88]
imul rcx, r8
add rcx, rbp
mov rdi, qword [rsp + 0xa8]
mov rdx, rdi
imul rdx, qword [rsp + 0x98]
add rcx, rdx
mov r9, qword [rsp + 0x90]
mov rdx, r9
imul rdx, qword [rsp + 0xc0]
add rcx, rdx
mov rdx, qword [rsp + 0x28]
imul rdx, r11
mov r8, rbx
mov rbx, r14
imul r8, r14
add r8, rdx
mov r11, qword [rsp + 0x30]
mov rdx, r11
mov r14, qword [rsp + 0x38]
imul rdx, r14
add r8, rdx
mov rdx, qword [rsp + 0x70]
imul rdx, qword [rsp + 0x60]
imul r13, rsi
add r13, rdx
mov rax, qword [rsp + 0xd8]
shr rax, 7
mov qword [rsp + 0xd8], rax
mov rdx, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xd0]
imul rdx, rbp
imul r12, rax
add r12, rdx
add r12, r13
add r12, r8
add r12, rcx
mov qword [rsp + 0x148], r12
mov rdx, rdi
mov rsi, r15
imul rdx, r15
mov rcx, qword [rsp + 0x40]
mov r15, qword [rsp + 0xb0]
imul rcx, r15
add rcx, rdx
mov rdx, r9
mov r12, r9
mov r13, qword [rsp + 0x98]
imul rdx, r13
add rcx, rdx
mov rdx, r11
mov r11, qword [rsp + 0x68]
imul rdx, r11
mov r8, qword [rsp + 0x28]
imul r8, rbx
add r8, rdx
mov rdi, qword [rsp + 0x88]
mov rdx, rdi
imul rdx, r14
add r8, rdx
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x60]
imul rdx, rax
mov r14, qword [rsp + 0x70]
mov r10, r14
imul r10, qword [rsp + 0x80]
add r10, rdx
mov rdx, qword [rsp + 0x48]
imul rdx, rbp
mov r9, qword [rsp + 0xb8]
imul r9, qword [rsp + 0xd8]
add r9, rdx
add r9, r10
add r9, r8
add r9, rcx
mov qword [rsp + 0xb8], r9
imul r12, rsi
mov r9, qword [rsp + 0xa8]
mov rdx, r9
imul rdx, r15
add rdx, r12
imul r13, qword [rsp + 0x58]
add rdx, r13
mov qword [rsp + 0x98], rdx
mov rcx, rdi
mov r12, r11
imul rcx, r11
mov rdx, qword [rsp + 0x30]
imul rdx, rbx
add rdx, rcx
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
mov r15, qword [rsp + 0x38]
imul rcx, r15
add rdx, rcx
mov r11, qword [rsp + 0x28]
mov rcx, r11
imul rcx, rax
mov r8, qword [rsp + 0x50]
mov rax, qword [rsp + 0x80]
imul r8, rax
add r8, rcx
imul r14, rbp
mov r10, qword [rsp + 0x48]
mov r13, qword [rsp + 0xd8]
imul r10, r13
add r10, r14
add r10, r8
add r10, rdx
mov qword [rsp + 0x48], r10
mov rcx, rsi
imul rcx, r12
mov rdx, rdi
imul rdx, rbx
mov rsi, rbx
add rdx, rcx
mov rcx, r9
mov rbp, r9
imul rcx, r15
mov r9, r15
add rdx, rcx
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
mov r10, qword [rsp + 0x60]
imul rcx, r10
mov r8, r11
mov r14, rax
imul r8, rax
add r8, rcx
mov rcx, qword [rsp + 0x50]
imul rcx, qword [rsp + 0xd0]
mov r15, qword [rsp + 0x70]
imul r15, r13
add r15, rcx
add r15, r8
add r15, rdx
mov rax, qword [rsp + 0x90]
mov rcx, rax
imul rcx, qword [rsp + 0xb0]
add r15, rcx
mov qword [rsp + 0x70], r15
mov rcx, rbp
imul rcx, r12
mov r15, qword [rsp + 0x40]
mov rdx, r15
imul rdx, rsi
add rdx, rcx
mov rcx, rax
imul rcx, r9
add rdx, rcx
mov rcx, rdi
imul rcx, r10
mov r8, rbx
mov r9, r14
imul r8, r14
add r8, rcx
mov rcx, r11
mov r10, qword [rsp + 0xd0]
imul rcx, r10
mov rbx, qword [rsp + 0x50]
imul rbx, r13
mov r14, r13
add rbx, rcx
add rbx, r8
add rbx, rdx
mov qword [rsp + 0x50], rbx
mov rcx, rax
mov r13, rax
imul rcx, r12
mov rdx, rbp
imul rdx, rsi
add rdx, rcx
mov r12, r15
mov rcx, r15
mov rax, qword [rsp + 0x60]
imul rcx, rax
mov r8, rdi
imul r8, r9
add r8, rcx
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
imul rcx, r10
imul r11, r14
add r11, rcx
add r11, r8
add r11, rdx
mov qword [rsp + 0x28], r11
mov rcx, qword [rsp + 0x68]
mov r15, qword [rsp + 0x58]
imul rcx, r15
mov rdx, r13
imul rdx, rsi
add rdx, rcx
mov qword [rsp + 0x138], rdx
mov rcx, rbp
imul rcx, rax
mov rdx, r12
mov r11, r9
imul rdx, r9
add rdx, rcx
mov rcx, rdi
mov r9, r10
imul rcx, r10
imul rbx, r14
add rbx, rcx
add rbx, rdx
mov qword [rsp + 0x30], rbx
mov rcx, r12
imul rcx, r10
imul rdi, r14
add rdi, rcx
mov rcx, rbp
imul rcx, r11
add rdi, rcx
mov rcx, r13
mov rdx, rax
imul rcx, rax
add rdi, rcx
imul rdx, r15
mov rsi, r15
mov r15, r13
mov rax, r13
imul r15, r11
mov r13, r11
add r15, rdx
mov rcx, rbp
imul rcx, r10
imul r12, r14
add r12, rcx
mov qword [rsp + 0x40], r12
mov rcx, rax
imul rcx, r10
imul rbp, r14
add rbp, rcx
mov qword [rsp + 0xa8], rbp
mov rcx, rsi
imul r9, rsi
imul rax, r14
mov r8, r14
add rax, r9
mov qword [rsp + 0x90], rax
mov r11, qword [rsp + 0xc0]
imul r11, rcx
mov r14, qword [rsp + 0xa0]
imul r14, rcx
mov rsi, qword [rsp + 0xb0]
imul rsi, rcx
mov rax, qword [rsp + 0x38]
imul rax, rcx
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x78]
imul rax, rcx
mov qword [rsp + 0x78], rax
imul r13, rcx
mov qword [rsp + 0x80], r13
imul rcx, r8
mov qword [rsp + 0x58], rcx
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
lea r8, [rax + rcx]
lea rdx, [rcx + rax]
add rdx, 0x100000
mov rcx, rdx
shr rcx, 0x15
add rcx, qword [rsp + 0x180]
and rdx, 0xffffffffffe00000
sub r8, rdx
mov qword [rsp + 0xb0], r8
mov rax, qword [rsp + 0x110]
shr eax, 2
and eax, 0x1fffff
mov rdx, qword [rsp + 0x178]
lea r8, [rdx + rax]
mov qword [rsp + 0x88], r8
add rdx, rax
add rdx, 0x100000
mov rax, qword [rsp + 0x118]
shr eax, 7
and eax, 0x1fffff
add qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0x120]
shr eax, 4
and eax, 0x1fffff
mov r8, qword [rsp + 0x170]
lea r9, [r8 + rax]
mov qword [rsp + 0xa0], r9
add r8, rax
add r8, 0x100000
mov rax, qword [rsp + 0x168]
add qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x128]
shr eax, 6
and eax, 0x1fffff
mov r9, qword [rsp + 0x160]
lea r10, [r9 + rax]
mov qword [rsp + 0x110], r10
add rax, r9
add rax, 0x100000
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xe0]
shr rax, 3
add qword [rsp + 0xe8], rax
movzx r10d, byte [rsp + 0x297]
mov rbx, qword [rsp + 0x188]
or ebx, r10d
and r10d, 0x1f
shl r10d, 0x10
mov rax, qword [rsp + 0x158]
lea r9, [rax + r10]
mov qword [rsp + 0xc0], r9
add rax, r10
add rax, 0x100000
mov qword [rsp + 0xd8], rax
shr rax, 0x15
add rax, qword [rsp + 0x150]
mov r9, qword [rsp + 0x190]
shr r9d, 2
and r9d, 0x1fffff
mov r13, qword [rsp + 0x140]
lea r10, [r9 + r13]
mov qword [rsp + 0xd0], r10
add r9, r13
add r9, 0x100000
mov qword [rsp + 0x68], r9
mov rbp, qword [rsp + 0x148]
add rbp, qword [rsp + 0xc8]
mov r9, r11
mov r10, qword [rsp + 0xb8]
add r11, r10
mov qword [rsp + 0xe0], r11
add r9, r10
add r9, 0x100000
mov qword [rsp + 0x118], r9
mov r9, qword [rsp + 0x98]
add qword [rsp + 0x48], r9
mov r10, qword [rsp + 0x70]
lea r11, [r10 + r14]
mov qword [rsp + 0x120], r11
lea r13, [r14 + r10]
add r13, 0x100000
add qword [rsp + 0x50], rsi
mov r9, qword [rsp + 0x38]
mov r11, qword [rsp + 0x28]
lea r10, [r11 + r9]
mov qword [rsp + 0x128], r10
add r9, r11
add r9, 0x100000
mov qword [rsp + 0x108], r9
mov r9, qword [rsp + 0x138]
add qword [rsp + 0x30], r9
mov r9, qword [rsp + 0x78]
lea r10, [rdi + r9]
add r9, rdi
add r9, 0x100000
add qword [rsp + 0x40], r15
mov r14, r9
and r9, 0xffffffffffe00000
sub r10, r9
mov r9, qword [rsp + 0x80]
mov r11, qword [rsp + 0xa8]
lea r15, [r11 + r9]
add r9, r11
add r9, 0x100000
mov rdi, r9
and r9, 0xffffffffffe00000
sub r15, r9
mov r11, qword [rsp + 0x58]
lea r9, [r11 + 0x100000]
mov qword [rsp + 0x28], r9
and r9, 0xffffffffffe00000
sub r11, r9
mov qword [rsp + 0x58], r11
mov r9, qword [rsp + 0x130]
shr r9d, 5
and r9d, 0x1fffff
lea r11, [rcx + r9]
add rcx, r9
add rcx, 0x100000
mov rsi, rcx
shr rsi, 0x15
add rsi, qword [rsp + 0x88]
mov r9, rdx
and rdx, 0xffffffffffe00000
sub rsi, rdx
mov qword [rsp + 0x78], rsi
and rcx, 0xffffffffffe00000
sub r11, rcx
mov qword [rsp + 0x80], r11
shr r9, 0x15
mov rcx, qword [rsp + 0xf8]
lea r11, [rcx + r9]
add rcx, r9
add rcx, 0x100000
mov r9, rcx
shr r9, 0x15
add r9, qword [rsp + 0xa0]
mov rdx, r8
and r8, 0xffffffffffe00000
sub r9, r8
mov qword [rsp + 0x98], r9
and rcx, 0xffffffffffe00000
sub r11, rcx
mov qword [rsp + 0xa0], r11
shr rdx, 0x15
mov rcx, qword [rsp + 0xf0]
lea r8, [rcx + rdx]
mov qword [rsp + 0x88], r8
lea r12, [rdx + rcx]
add r12, 0x100000
mov qword [rsp + 0x70], r12
shr r12, 0x15
add r12, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x60]
shr rcx, 0x15
mov rdx, qword [rsp + 0xe8]
lea r8, [rdx + rcx]
mov qword [rsp + 0x38], r8
add rcx, rdx
add rcx, 0x100000
mov qword [rsp + 0xe8], rcx
mov rcx, rbx
shr ecx, 5
and ecx, 0x1fffff
lea rdx, [rax + rcx]
mov qword [rsp + 0xf0], rdx
add rax, rcx
add rax, 0x100000
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0x68]
shr rax, 0x15
lea rdx, [rax + rbp]
mov qword [rsp + 0xc8], rdx
add rax, rbp
add rax, 0x100000
mov qword [rsp + 0xb8], rax
mov rsi, qword [rsp + 0x108]
mov rax, rsi
shr rax, 0x15
mov rdx, qword [rsp + 0x30]
lea rcx, [rdx + rax]
add rax, rdx
add rax, 0x100000
mov r11, rax
shr r11, 0x15
add r11, r10
and rax, 0xffffffffffe00000
sub rcx, rax
mov qword [rsp + 0xa8], rcx
shr r14, 0x15
mov rax, qword [rsp + 0x40]
lea r10, [rax + r14]
add rax, r14
add rax, 0x100000
mov rbx, rax
shr rbx, 0x15
add rbx, r15
and rax, 0xffffffffffe00000
sub r10, rax
shr rdi, 0x15
mov rax, qword [rsp + 0x90]
lea rbp, [rax + rdi]
add rax, rdi
add rax, 0x100000
mov r14, rax
shr r14, 0x15
add r14, qword [rsp + 0x58]
and rax, 0xffffffffffe00000
sub rbp, rax
mov r8, qword [rsp + 0x28]
shr r8, 0x15
mov qword [rsp + 0x28], r8
imul rax, r8, 0x72d18
add rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x118]
mov r9, rcx
and rcx, 0xffffffffffe00000
sub rax, rcx
imul rcx, r8, 0xfffffffffff0c653
add rcx, qword [rsp + 0x120]
mov qword [rsp + 0x90], r13
and r13, 0xffffffffffe00000
sub rcx, r13
shr r9, 0x15
mov qword [rsp + 0x130], r9
mov rdx, qword [rsp + 0x48]
lea r15, [r9 + rdx]
add r15, 0x100000
mov rdx, r15
shr rdx, 0x15
add rcx, rdx
imul rdx, r8, 0xfffffffffff59083
add rdx, qword [rsp + 0x128]
mov r9, rsi
and r9, 0xffffffffffe00000
sub rdx, r9
mov qword [rsp + 0x40], rdx
imul rdx, r8, 0xa2c13
imul r9, r14, 0x72d18
add r9, rdx
imul rsi, r14, 0x9fb67
add rsi, rax
imul rax, r14, 0xa2c13
imul rdi, rbp, 0x72d18
add rdi, rax
imul rdx, rbp, 0x9fb67
add rdx, r9
imul r13, rbp, 0xfffffffffff0c653
add r13, rsi
imul rax, r14, 0x215d1
add rax, rcx
mov qword [rsp + 0xe0], rax
imul rax, rbp, 0xa2c13
imul rcx, rbx, 0x72d18
add rcx, rax
imul rsi, rbx, 0x9fb67
add rsi, rdi
imul rax, r10, 0xa2c13
add rax, qword [rsp + 0x38]
imul r9, rbx, 0xa2c13
imul r8, r10, 0x72d18
add r8, r9
imul r9, r10, 0x9fb67
add r9, rcx
imul rdi, r10, 0xfffffffffff0c653
add rdi, rsi
imul rcx, rbx, 0xfffffffffff0c653
imul rsi, r10, 0x215d1
add rsi, rcx
add rsi, rdx
imul rcx, r10, 0xfffffffffff59083
imul rdx, rbx, 0x215d1
add rcx, rdx
add rcx, r13
imul r10, r11, 0xa2c13
add r10, r12
mov rdx, qword [rsp + 0x60]
and rdx, 0xffffffffffe00000
sub r10, rdx
mov qword [rsp + 0x38], r10
imul r13, r11, 0x72d18
add r13, rax
mov rax, qword [rsp + 0xe8]
mov r10, rax
and rax, 0xffffffffffe00000
sub r13, rax
imul rdx, r11, 0x9fb67
add rdx, r8
add rdx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xd8]
and rax, 0xffffffffffe00000
sub rdx, rax
imul r12, r11, 0xfffffffffff0c653
add r12, qword [rsp + 0xf0]
add r12, r9
imul r9, r11, 0x215d1
add r9, qword [rsp + 0xd0]
add r9, rdi
mov rdi, qword [rsp + 0xf8]
mov rax, rdi
shr rax, 0x15
add r9, rax
mov rax, qword [rsp + 0x68]
and rax, 0xffffffffffe00000
sub r9, rax
imul rax, r11, 0xfffffffffff59083
add rax, qword [rsp + 0xc8]
add rax, rsi
mov r11, qword [rsp + 0xb8]
mov r8, r11
and r11, 0xffffffffffe00000
sub rax, r11
shr r10, 0x15
lea r11, [rdx + r10]
mov qword [rsp + 0x58], r11
add rdx, r10
add rdx, 0x100000
mov qword [rsp + 0x68], rdx
sar rdx, 0x15
add rdx, r12
mov r10, rdi
and r10, 0xffffffffffe00000
sub rdx, r10
mov qword [rsp + 0x30], rdx
shr r8, 0x15
lea rdx, [rcx + r8]
add r8, rcx
add r8, 0x100000
mov r11, qword [rsp + 0x28]
imul rcx, r11, 0x9fb67
add rcx, qword [rsp + 0x48]
add rcx, qword [rsp + 0x130]
and r15, 0xffffffffffe00000
sub rcx, r15
imul r10, r14, 0xfffffffffff0c653
add rcx, r10
imul r10, rbp, 0x215d1
add rcx, r10
imul r10, rbx, 0xfffffffffff59083
add rcx, r10
mov r15, r8
and r8, 0xffffffffffe00000
sub rdx, r8
imul r8, rbp, 0xfffffffffff59083
mov r10, qword [rsp + 0xe0]
lea rdi, [r10 + r8]
add r10, r8
add r10, 0x100000
mov rsi, qword [rsp + 0x90]
shr rsi, 0x15
imul r8, r11, 0x215d1
mov r11, qword [rsp + 0x50]
add r8, r11
add r11, rsi
add r11, 0x100000
add r8, rsi
mov rbx, r11
and r11, 0xffffffffffe00000
sub r8, r11
imul r11, r14, 0xfffffffffff59083
add r8, r11
mov rsi, r10
and r10, 0xffffffffffe00000
sub rdi, r10
shr rbx, 0x15
mov r11, qword [rsp + 0x40]
lea r10, [r11 + rbx]
add r11, rbx
add r11, 0x100000
mov rbx, r11
sar rbx, 0x15
add rbx, qword [rsp + 0xa8]
and r11, 0xffffffffffe00000
sub r10, r11
mov r11, qword [rsp + 0x38]
add r11, 0x100000
mov qword [rsp + 0x60], r11
sar r11, 0x15
lea r14, [r11 + r13]
mov qword [rsp + 0x90], r14
lea r14, [r11 + r13]
add r14, 0x100000
lea r11, [r9 + 0x100000]
mov r12, r11
sar r12, 0x15
lea rbp, [rax + r12]
add rax, r12
add rax, 0x100000
mov r13, rax
sar r13, 0x15
add r13, rdx
and rax, 0xffffffffffe00000
sub rbp, rax
mov qword [rsp + 0x28], rbp
sar r15, 0x15
lea rbp, [rcx + r15]
lea rax, [r15 + rcx]
add rax, 0x100000
mov r12, rax
sar r12, 0x15
add r12, rdi
and rax, 0xffffffffffe00000
sub rbp, rax
sar rsi, 0x15
lea r15, [r8 + rsi]
lea rax, [rsi + r8]
add rax, 0x100000
mov rcx, rax
sar rcx, 0x15
add rcx, r10
and rax, 0xffffffffffe00000
sub r15, rax
imul rax, rbx, 0xa2c13
add rax, qword [rsp + 0x88]
imul rdx, rbx, 0xfffffffffff59083
add rdx, r9
mov r8, qword [rsp + 0x30]
add r8, 0x100000
mov qword [rsp + 0x40], r8
sar r8, 0x15
add rdx, r8
and r11, 0xffffffffffe00000
sub rdx, r11
mov qword [rsp + 0x50], rdx
imul r10, rcx, 0xa2c13
add r10, qword [rsp + 0x98]
imul r11, rcx, 0x72d18
add r11, rax
imul rax, rbx, 0x72d18
imul r9, rcx, 0x9fb67
add r9, rax
imul rax, rbx, 0x9fb67
imul rdi, rcx, 0xfffffffffff0c653
add rdi, rax
imul rax, rbx, 0xfffffffffff0c653
imul rdx, rcx, 0x215d1
add rdx, rax
imul rax, rbx, 0x215d1
imul rcx, rcx, 0xfffffffffff59083
add rcx, rax
mov qword [rsp + 0x48], rcx
imul rcx, r15, 0xa2c13
add rcx, qword [rsp + 0xa0]
imul rsi, r15, 0x72d18
add rsi, r10
imul rax, r15, 0x9fb67
add rax, r11
mov r10, qword [rsp + 0x70]
and r10, 0xffffffffffe00000
sub rax, r10
imul rbx, r15, 0x215d1
add rbx, qword [rsp + 0x90]
add rbx, rdi
mov r10, r14
and r14, 0xffffffffffe00000
sub rbx, r14
imul rdi, r15, 0xfffffffffff59083
add rdi, qword [rsp + 0x58]
add rdi, rdx
sar r10, 0x15
add rdi, r10
mov rdx, qword [rsp + 0x68]
and rdx, 0xffffffffffe00000
sub rdi, rdx
imul r10, r12, 0xa2c13
add r10, qword [rsp + 0x78]
imul rdx, r12, 0x72d18
add rdx, rcx
imul r11, r12, 0x9fb67
add r11, rsi
imul rsi, r12, 0xfffffffffff0c653
add rsi, rax
imul r14, rbp, 0xa2c13
add r14, qword [rsp + 0x80]
imul rcx, rbp, 0x9fb67
add rcx, rdx
imul r8, rbp, 0x215d1
add r8, rsi
imul r15, r15, 0xfffffffffff0c653
add r15, qword [rsp + 0x38]
add r15, r9
mov rdx, qword [rsp + 0x60]
and rdx, 0xffffffffffe00000
sub r15, rdx
imul rdx, r12, 0x215d1
add r15, rdx
imul rdx, r13, 0x9fb67
add rdx, r10
imul r9, r13, 0x215d1
add r9, r11
imul r10, r13, 0xa2c13
mov r11, qword [rsp + 0xb0]
lea rax, [r10 + r11]
lea rsi, [r10 + r11]
add rsi, 0x100000
imul r11, r13, 0x72d18
add r11, r14
mov r10, rsi
and rsi, 0xffffffffffe00000
sub rax, rsi
mov qword [rsp + 0x80], rax
imul rsi, rbp, 0x72d18
lea rax, [rdx + rsi]
mov qword [rsp + 0x58], rax
lea rax, [rsi + rdx]
add rax, 0x100000
mov qword [rsp + 0x78], rax
imul r14, r13, 0xfffffffffff0c653
add r14, rcx
imul rcx, rbp, 0xfffffffffff0c653
lea rdx, [r9 + rcx]
mov qword [rsp + 0x38], rdx
lea rax, [rcx + r9]
add rax, 0x100000
mov qword [rsp + 0x70], rax
imul rcx, r13, 0xfffffffffff59083
add rcx, r8
imul rax, rbp, 0xfffffffffff59083
lea r9, [r15 + rax]
lea rdx, [rax + r15]
add rdx, 0x100000
imul rsi, r12, 0xfffffffffff59083
add rsi, rbx
mov rax, rdx
and rdx, 0xffffffffffe00000
sub r9, rdx
mov r8, qword [rsp + 0x48]
add r8, qword [rsp + 0x30]
lea rdx, [rdi + 0x100000]
mov rbx, rdx
sar rbx, 0x15
add r8, rbx
mov rbx, qword [rsp + 0x40]
and rbx, 0xffffffffffe00000
sub r8, rbx
mov r12, r8
and rdx, 0xffffffffffe00000
sub rdi, rdx
sar r10, 0x15
lea rbx, [r11 + r10]
add r10, r11
add r10, 0x100000
mov r8, qword [rsp + 0x78]
mov rdx, r8
sar rdx, 0x15
lea r15, [r14 + rdx]
add rdx, r14
add rdx, 0x100000
mov rbp, qword [rsp + 0x70]
mov r11, rbp
sar r11, 0x15
lea r14, [rcx + r11]
mov qword [rsp + 0x40], r14
add rcx, r11
add rcx, 0x100000
mov r14, rcx
sar r14, 0x15
add r14, r9
sar rax, 0x15
lea r13, [rsi + rax]
add rax, rsi
add rax, 0x100000
mov r11, rax
sar r11, 0x15
add r11, rdi
and rax, 0xffffffffffe00000
sub r13, rax
lea rax, [r12 + 0x100000]
mov qword [rsp + 0x30], rax
and rax, 0xffffffffffe00000
sub r12, rax
mov qword [rsp + 0x48], r12
mov rax, qword [rsp + 0x50]
add rax, 0x100000
mov r9, rax
sar r9, 0x15
mov rsi, qword [rsp + 0x28]
lea rdi, [rsi + r9]
add r9, rsi
add r9, 0x100000
mov rsi, r9
and r9, 0xffffffffffe00000
sub rdi, r9
mov qword [rsp + 0x28], rdi
sar rsi, 0x15
imul r9, rsi, 0xa2c13
add r9, qword [rsp + 0x80]
imul r12, rsi, 0x72d18
add r12, rbx
mov rdi, r10
and r10, 0xffffffffffe00000
sub r12, r10
imul rbx, rsi, 0x9fb67
add rbx, qword [rsp + 0x58]
and r8, 0xffffffffffe00000
sub rbx, r8
sar rdi, 0x15
add rbx, rdi
imul rdi, rsi, 0xfffffffffff0c653
add rdi, r15
mov r15, rdx
and rdx, 0xffffffffffe00000
sub rdi, rdx
imul r10, rsi, 0x215d1
add r10, qword [rsp + 0x38]
mov rdx, rbp
and rdx, 0xffffffffffe00000
sub r10, rdx
sar r15, 0x15
add r10, r15
imul rdx, rsi, 0xfffffffffff59083
add rdx, qword [rsp + 0x40]
and rcx, 0xffffffffffe00000
sub rdx, rcx
mov rcx, r9
sar rcx, 0x15
add rcx, r12
mov rsi, rcx
sar rsi, 0x15
add rsi, rbx
mov r15, rsi
sar r15, 0x15
add r15, rdi
mov r12, r15
sar r12, 0x15
add r12, r10
mov rbp, r12
sar rbp, 0x15
add rbp, rdx
mov rbx, rbp
sar rbx, 0x15
add rbx, r14
mov qword [rsp + 0x38], rbx
sar rbx, 0x15
add rbx, r13
mov r14, rbx
sar r14, 0x15
add r14, r11
mov r13, r14
sar r13, 0x15
add r13, qword [rsp + 0x48]
and rax, 0xffffffffffe00000
mov r10, qword [rsp + 0x30]
sar r10, 0x15
and r9d, 0x1fffff
and ecx, 0x1fffff
and esi, 0x1fffff
and r15d, 0x1fffff
and r12d, 0x1fffff
add r10, qword [rsp + 0x50]
mov rdx, r13
sar rdx, 0x15
sub r10, rax
add r10, rdx
mov r8, r10
mov r11, r10
sar r8, 0x15
add r8, qword [rsp + 0x28]
mov rdx, r8
sar rdx, 0x15
imul rax, rdx, 0xa2c13
add rax, r9
imul r9, rdx, 0x72d18
add r9, rcx
imul rcx, rdx, 0x9fb67
add rcx, rsi
imul r10, rdx, 0xfffffffffff0c653
add r10, r15
imul rdi, rdx, 0x215d1
add rdi, r12
and ebp, 0x1fffff
mov r12, qword [rsp + 0x38]
and r12d, 0x1fffff
and ebx, 0x1fffff
and r14d, 0x1fffff
and r13d, 0x1fffff
and r11d, 0x1fffff
mov qword [rsp + 0x30], r11
and r8d, 0x1fffff
imul rdx, rdx, 0xfffffffffff59083
add rdx, rbp
mov rbp, rax
sar rbp, 0x15
add rbp, r9
mov r15, rbp
sar r15, 0x15
add r15, rcx
mov rsi, r15
sar rsi, 0x15
add rsi, r10
mov r11, rsi
sar r11, 0x15
add r11, rdi
mov r10, r11
sar r10, 0x15
add r10, rdx
mov r9, r10
sar r9, 0x15
add r9, r12
mov r12, r9
sar r12, 0x15
add r12, rbx
mov rbx, r12
sar rbx, 0x15
add rbx, r14
mov rdx, rbx
sar rdx, 0x15
add rdx, r13
mov rcx, rdx
sar rcx, 0x15
add rcx, qword [rsp + 0x30]
mov r14, rcx
sar r14, 0x15
add r14, r8
mov rdi, qword [rsp + 0x198]
mov byte [rdi + 0x20], al
mov byte [rdi + 0x21], ah
shr eax, 0x10
and eax, 0x1f
mov r8d, ebp
shl r8d, 5
or r8d, eax
mov byte [rdi + 0x22], r8b
mov rax, rbp
shr rax, 3
mov byte [rdi + 0x23], al
mov rax, rbp
shr rax, 0xb
mov byte [rdi + 0x24], al
shr ebp, 0x13
and ebp, 3
lea eax, [rbp + r15*4]
mov byte [rdi + 0x25], al
mov rax, r15
shr rax, 6
mov byte [rdi + 0x26], al
mov eax, esi
shl eax, 7
shr r15d, 0xe
and r15d, 0x7f
or r15d, eax
mov byte [rdi + 0x27], r15b
mov rax, rsi
shr rax, 1
mov byte [rdi + 0x28], al
mov rax, rsi
shr rax, 9
mov byte [rdi + 0x29], al
mov eax, r11d
shl eax, 4
shr esi, 0x11
and esi, 0xf
or esi, eax
mov byte [rdi + 0x2a], sil
mov rax, r11
shr rax, 4
mov byte [rdi + 0x2b], al
mov rax, r11
shr rax, 0xc
mov byte [rdi + 0x2c], al
shr r11d, 0x14
and r11d, 1
lea eax, [r11 + r10*2]
mov byte [rdi + 0x2d], al
mov rax, r10
shr rax, 7
mov byte [rdi + 0x2e], al
mov eax, r9d
shl eax, 6
shr r10d, 0xf
and r10d, 0x3f
or r10d, eax
mov byte [rdi + 0x2f], r10b
mov rax, r9
shr rax, 2
mov byte [rdi + 0x30], al
mov rax, r9
shr rax, 0xa
mov byte [rdi + 0x31], al
shr r9d, 0x12
and r9d, 7
lea eax, [r9 + r12*8]
mov byte [rdi + 0x32], al
mov rax, r12
shr rax, 5
mov byte [rdi + 0x33], al
shr r12, 0xd
mov byte [rdi + 0x34], r12b
mov byte [rdi + 0x35], bl
mov byte [rdi + 0x36], bh
shr ebx, 0x10
and ebx, 0x1f
mov eax, edx
shl eax, 5
or eax, ebx
mov byte [rdi + 0x37], al
mov rax, rdx
shr rax, 3
mov byte [rdi + 0x38], al
mov rax, rdx
shr rax, 0xb
mov byte [rdi + 0x39], al
shr edx, 0x13
and edx, 3
lea eax, [rdx + rcx*4]
mov byte [rdi + 0x3a], al
mov rax, rcx
shr rax, 6
mov byte [rdi + 0x3b], al
mov eax, r14d
shl eax, 7
shr ecx, 0xe
and ecx, 0x7f
or ecx, eax
mov byte [rdi + 0x3c], cl
mov rax, r14
shr rax, 1
mov byte [rdi + 0x3d], al
mov rax, r14
shr rax, 9
mov byte [rdi + 0x3e], al
shr r14, 0x11
mov byte [rdi + 0x3f], r14b
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.140265fe0
mov eax, 1
add rsp, 0x458
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret