Function at 0x140098bf0
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x358
movaps xmmword [rsp + 0x340], xmm6
mov qword [rsp + 0xf0], rcx
mov rax, qword [0x140162028]
xor rax, rsp
mov qword [rsp + 0x338], rax
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [rdx + 0x10]
movdqa xmmword [rsp + 0x120], xmm0
movdqa xmmword [rsp + 0x130], xmm1
and byte [rsp + 0x120], 0xf8
mov al, byte [rsp + 0x13f]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0x13f], al
movzx r9d, byte [r8 + 4]
movzx r10d, byte [r8 + 5]
movzx r13d, byte [r8 + 6]
movzx edi, byte [r8 + 7]
movzx ebp, byte [r8 + 8]
movzx r15d, byte [r8 + 9]
movzx r14d, byte [r8 + 0xa]
movzx r11d, byte [r8 + 0xb]
movzx eax, byte [r8 + 0x14]
movzx ecx, byte [r8 + 0x1a]
movzx edx, byte [r8 + 0x1b]
shl rdx, 0xc
shl rcx, 4
or rcx, rdx
movzx edx, byte [r8 + 0x1c]
shl rdx, 0x14
or rcx, rdx
movzx edx, byte [r8 + 0x1d]
shl rdx, 0x1c
or rcx, rdx
movzx edx, byte [r8 + 0x1e]
shl rdx, 0x24
or rcx, rdx
movzx edx, byte [r8 + 0x1f]
and edx, 0x7f
shl rdx, 0x2c
or rcx, rdx
movzx edx, byte [r8 + 0x15]
shl rdx, 0xf
shl rax, 7
or rax, rdx
movzx edx, byte [r8 + 0x16]
shl rdx, 0x17
or rax, rdx
movzx edx, byte [r8 + 0x17]
shl rdx, 0x1f
or rax, rdx
movzx edx, byte [r8 + 0x18]
shl rdx, 0x27
or rax, rdx
movzx edx, byte [r8 + 0x19]
shl rdx, 0x2f
or rax, rdx
shl rdi, 5
mov rdx, r13
shr rdx, 3
or rdx, rdi
movzx edi, byte [r8 + 0xc]
shl rbp, 0xd
or rdx, rbp
movzx r12d, byte [r8 + 0xd]
shl r15, 0x15
or rdx, r15
movzx r15d, byte [r8 + 0xe]
shl r14, 0x1d
or rdx, r14
movzx r14d, byte [r8 + 0xf]
shl r11, 0x25
shl r9, 0x20
or rdx, r11
mov r11d, dword [r8]
or r11, r9
movzx r9d, byte [r8 + 0x10]
shl r10, 0x28
or r11, r10
movzx r10d, byte [r8 + 0x11]
and r13d, 7
shl r13, 0x30
or r11, r13
movzx ebp, byte [r8 + 0x12]
movzx ebx, byte [r8 + 0x13]
shl rbx, 0x32
shl rbp, 0x2a
shl r10, 0x22
shl r9, 0x1a
shl r14, 0x12
shl r15, 0xa
lea rsi, [r15 + r12*4]
or rsi, r14
or rsi, r9
or rsi, r10
or rsi, rbp
or rsi, rbx
mov rbp, rdi
shr rbp, 6
add rbp, rsi
and edi, 0x3f
shl rdi, 0x2d
or rdi, rdx
mov rdx, rbp
shr rdx, 0x33
movabs rbx, 0x7ffffffffffff
and rbp, rbx
movzx edx, dl
add rdx, rax
mov rax, rdx
shr rax, 0x33
and rdx, rbx
movzx eax, al
add rax, rcx
lea rbx, [rsp + 0x2e8]
mov qword [rbx], r11
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rdx
mov qword [rbx + 0x20], rax
pxor xmm0, xmm0
lea rdx, [rsp + 0x2c0]
movdqu xmmword [rdx + 8], xmm0
movdqu xmmword [rdx + 0x18], xmm0
mov ecx, 1
mov qword [rdx], rcx
lea rdx, [rsp + 0x290]
movdqa xmmword [rdx], xmm0
movdqa xmmword [rdx + 0x10], xmm0
mov qword [rdx + 0x20], 0
mov rdx, qword [rbx]
mov rbp, qword [rbx + 8]
lea rdi, [rsp + 0x260]
mov qword [rdi], rdx
mov qword [rdi + 8], rbp
mov rdx, qword [rbx + 0x10]
mov qword [rdi + 0x10], rdx
mov rdx, qword [rbx + 0x18]
mov qword [rdi + 0x18], rdx
mov qword [rdi + 0x20], rax
lea rax, [rsp + 0x238]
movdqu xmmword [rax + 8], xmm0
movdqu xmmword [rax + 0x18], xmm0
mov qword [rax], rcx
mov eax, 0xfe
xor esi, esi
movdqa xmm6, xmmword [0x1401373e0]
mov ecx, eax
mov dword [rsp + 0xec], eax
mov eax, eax
shr rax, 3
movzx eax, byte [rsp + rax + 0x120]
and cl, 7
shr rax, cl
and eax, 1
mov qword [rsp + 0x118], rax
xor esi, eax
lea rcx, [rsp + 0x2c0]
lea rdx, [rsp + 0x260]
mov r8, rsi
call fcn.140099d80
lea rcx, [rsp + 0x290]
lea rdx, [rsp + 0x238]
mov r8, rsi
call fcn.140099d80
mov rdx, qword [rsp + 0x260]
mov qword [rsp + 0x48], rdx
mov rbp, qword [rsp + 0x268]
mov qword [rsp + 0x28], rbp
movabs rcx, 0xffffffffffffe
lea rax, [rdx + rcx - 0x24]
mov r15, qword [rsp + 0x238]
mov rdx, qword [rsp + 0x240]
mov qword [rsp + 0x40], rdx
sub rax, r15
lea rsi, [rcx + rbp]
sub rsi, rdx
mov rdx, qword [rsp + 0x270]
mov qword [rsp + 0xa0], rdx
lea rdi, [rdx + rcx]
mov r14, qword [rsp + 0x248]
sub rdi, r14
mov rdx, qword [rsp + 0x278]
mov qword [rsp + 0x38], rdx
lea rbx, [rdx + rcx]
mov r11, qword [rsp + 0x250]
sub rbx, r11
mov rdx, qword [rsp + 0x280]
mov qword [rsp + 0x30], rdx
lea rbp, [rdx + rcx]
mov r10, qword [rsp + 0x258]
sub rbp, r10
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rsi
mov qword [rsp + 0x180], rdi
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x190], rbp
mov rsi, qword [rsp + 0x2c0]
mov rbx, qword [rsp + 0x2c8]
mov rax, rcx
lea r12, [rsi + rcx]
add r12, 0xffffffffffffffdc
mov r8, qword [rsp + 0x290]
mov r9, qword [rsp + 0x298]
sub r12, r8
add r8, rsi
mov qword [rsp + 0xe0], r8
lea rdi, [rbx + rcx]
sub rdi, r9
add r9, rbx
mov rsi, qword [rsp + 0x2d0]
lea rbx, [rsi + rcx]
mov rcx, qword [rsp + 0x2a0]
sub rbx, rcx
add rcx, rsi
mov rbp, qword [rsp + 0x2d8]
lea rsi, [rax + rbp]
mov r13, rax
mov rax, qword [rsp + 0x2a8]
sub rsi, rax
add rax, rbp
mov rdx, qword [rsp + 0x2e0]
lea rbp, [rdx + r13]
mov r13, qword [rsp + 0x2b0]
sub rbp, r13
add r13, rdx
mov qword [rsp + 0x1c0], r8
mov qword [rsp + 0x1c8], r9
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1d8], rax
add r15, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
add rax, qword [rsp + 0x28]
add r14, qword [rsp + 0xa0]
add r11, qword [rsp + 0x38]
add r10, qword [rsp + 0x30]
mov qword [rsp + 0x198], r15
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1a8], r14
mov qword [rsp + 0x1b0], r11
mov qword [rsp + 0x1b8], r10
movabs rax, 0xffffffffffffe
lea rax, [rax - 0x24]
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x148], r12
mov qword [rsp + 0x150], rdi
mov qword [rsp + 0x158], rbx
mov qword [rsp + 0x160], rsi
mov qword [rsp + 0x168], rbp
mov qword [rsp + 0x1e0], r13
lea rcx, [rsp + 0x238]
lea rdx, [rsp + 0x170]
lea r8, [rsp + 0x1c0]
call fcn.140098310
lea rcx, [rsp + 0x290]
lea rdx, [rsp + 0x198]
lea r8, [rsp + 0x148]
call fcn.140098310
lea rax, [rbp*8]
add rax, rbp
lea rax, [rax*2]
add rax, rbp
imul rcx, rbp, 0x26
lea rdx, [rsi + rsi*8]
lea r9, [rsi + rdx*2]
imul r8, rsi, 0x26
mul rbp
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x28], rdx
mov rax, rcx
mul rsi
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], rax
mov rax, r9
mul rsi
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x90], rdx
add rbp, rbp
add rsi, rsi
mov rax, rcx
mul rbx
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x78], rax
mov rax, r8
mul rbx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0xb8], rax
mov rax, rbx
mul rbx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], rax
mov rax, rcx
mul rdi
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xa8], rax
mov rax, rsi
mul rdi
mov r8, rax
mov r15, rdx
lea rcx, [rbx + rbx]
mov rax, rcx
mul rdi
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x30], rdx
lea r11, [rdi + rdi]
mov rax, rdi
mul rdi
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x50], rax
mov rax, rbp
mul r12
mov r9, rdx
mov r10, rax
mov rax, rsi
mul r12
mov qword [rsp + 0x48], rdx
mov r14, rax
mov rax, rcx
mul r12
mov rbp, rdx
mov rcx, rax
mov rax, r11
mul r12
mov rdi, rdx
mov rsi, rax
mov rax, r12
mul r12
add rax, qword [rsp + 0xb8]
adc rdx, qword [rsp + 0x58]
add rax, qword [rsp + 0xa8]
adc rdx, qword [rsp + 0xb0]
shld rdx, rax, 0xd
movabs rbx, 0x7ffffffffffff
and rax, rbx
add r8, qword [rsp + 0x60]
adc r15, qword [rsp + 0x68]
add r8, r10
adc r15, r9
add rsi, qword [rsp + 0x80]
adc rdi, qword [rsp + 0x90]
add rsi, qword [rsp + 0x78]
adc rdi, qword [rsp + 0x88]
add rsi, rdx
adc rdi, 0
shld rdi, rsi, 0xd
and rsi, rbx
add rcx, qword [rsp + 0x50]
adc rbp, qword [rsp + 0x70]
add rcx, qword [rsp + 0x38]
adc rbp, qword [rsp + 0x40]
add rcx, rdi
adc rbp, 0
shld rbp, rcx, 0xd
and rcx, rbx
add r14, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x48]
adc rdi, qword [rsp + 0x30]
add r14, qword [rsp + 0xa0]
adc rdi, qword [rsp + 0x28]
add r14, rbp
adc rdi, 0
shld rdi, r14, 0xd
and r14, rbx
mov qword [rsp + 0x40], r14
add rdi, r8
adc r15, 0
shld r15, rdi, 0xd
and rdi, rbx
mov qword [rsp + 0x48], rdi
mov r14, rbx
lea rdx, [r15 + r15*8]
lea rdx, [r15 + rdx*2]
add rdx, rax
mov rax, rdx
shr rax, 0x33
add rax, rsi
and rdx, rbx
mov qword [rsp + 0xa0], rdx
mov rdx, rax
mov rbp, rax
shr rdx, 0x33
add rdx, rcx
mov qword [rsp + 0x38], rdx
lea rax, [r13*8]
add rax, r13
lea rax, [rax*2]
add rax, r13
imul r8, r13, 0x26
mov rdi, qword [rsp + 0x1d8]
lea rcx, [rdi + rdi*8]
lea rcx, [rdi + rcx*2]
mul r13
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rdx
mov rax, rdi
mul r8
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xb0], rax
mov rax, rcx
mul rdi
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rdx
and rbp, rbx
mov qword [rsp + 0x30], rbp
mov rsi, qword [rsp + 0x1d0]
mov rax, rsi
mul r8
mov rbp, rax
mov rcx, rdx
add r13, r13
imul rdx, rdi, 0x26
mov rax, rsi
mul rdx
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xa8], rdx
add rdi, rdi
mov rax, rsi
mul rsi
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdx
mov rbx, qword [rsp + 0x1c8]
mov rax, rbx
mul r8
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xc8], rax
mov rax, rbx
mul rdi
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
lea r10, [rsi + rsi]
mov rax, rbx
mul r10
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x50], rdx
lea r8, [rbx + rbx]
mov rax, rbx
mul rbx
mov r11, rdx
mov r12, rax
mov rax, r13
mov rbx, qword [rsp + 0xe0]
mul rbx
mov rsi, rdx
mov qword [rsp + 0x28], rax
mov rax, rdi
mul rbx
mov r9, rdx
mov r15, rax
mov rax, r10
mul rbx
mov r10, rdx
mov rdi, rax
mov rax, r8
mul rbx
mov r13, rdx
mov r8, rax
mov rax, rbx
mul rbx
add rax, qword [rsp + 0xd8]
adc rdx, qword [rsp + 0xa8]
add rax, qword [rsp + 0xc8]
adc rdx, qword [rsp + 0xd0]
shld rdx, rax, 0xd
and rax, r14
add r12, qword [rsp + 0xb0]
adc r11, qword [rsp + 0xb8]
add r12, rdi
adc r11, r10
add rbp, qword [rsp + 0x58]
adc rcx, qword [rsp + 0x60]
add rbp, r8
adc rcx, r13
add rbp, rdx
adc rcx, 0
shld rcx, rbp, 0xd
and rbp, r14
add rcx, r12
adc r11, 0
shld r11, rcx, 0xd
and rcx, r14
mov r8, r14
add r15, qword [rsp + 0x90]
adc r9, qword [rsp + 0x98]
add r15, qword [rsp + 0x68]
adc r9, qword [rsp + 0x50]
add r15, r11
adc r9, 0
shld r9, r15, 0xd
and r15, r14
mov r10, r15
mov qword [rsp + 0x50], r15
mov r15, qword [rsp + 0x28]
add r15, qword [rsp + 0x80]
adc rsi, qword [rsp + 0x88]
add r15, qword [rsp + 0x70]
adc rsi, qword [rsp + 0x78]
add r15, r9
adc rsi, 0
shld rsi, r15, 0xd
mov r11, r15
lea rdx, [rsi + rsi*8]
lea r12, [rsi + rdx*2]
add r12, rax
mov rbx, r12
shr rbx, 0x33
add rbx, rbp
mov r15, rbx
shr r15, 0x33
add r15, rcx
mov rax, qword [rsp + 0x238]
mov rdi, qword [rsp + 0x240]
mov rcx, qword [rsp + 0x290]
mov rbp, qword [rsp + 0x298]
lea rdx, [rcx + rax]
mov qword [rsp + 0xe0], rdx
movabs rdx, 0xffffffffffffe
add rax, rdx
add rax, 0xffffffffffffffdc
sub rax, rcx
mov r9, rax
mov qword [rsp + 0x70], rax
lea rax, [rdi + rbp]
mov qword [rsp + 0x98], rax
add rdi, rdx
sub rdi, rbp
mov rsi, qword [rsp + 0x248]
mov rax, qword [rsp + 0x2a0]
lea rcx, [rax + rsi]
mov qword [rsp + 0x90], rcx
add rsi, rdx
sub rsi, rax
mov r13, qword [rsp + 0x250]
mov rax, qword [rsp + 0x2a8]
lea rcx, [rax + r13]
mov qword [rsp + 0x88], rcx
add r13, rdx
sub r13, rax
mov rbp, qword [rsp + 0x258]
mov rax, qword [rsp + 0x2b0]
lea rcx, [rax + rbp]
mov qword [rsp + 0x80], rcx
add rbp, rdx
sub rbp, rax
mov r14, qword [rsp + 0xa0]
mov qword [rsp + 0x210], r14
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x218], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x220], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x228], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x230], rax
and r11, r8
mov qword [rsp + 0x28], r11
and r12, r8
and rbx, r8
mov qword [rsp + 0x1e8], r12
mov qword [rsp + 0x1f0], rbx
mov qword [rsp + 0x1f8], r15
mov qword [rsp + 0x200], r10
mov qword [rsp + 0x208], r11
mov qword [rsp + 0x198], r9
mov qword [rsp + 0x1a0], rdi
mov qword [rsp + 0x1a8], rsi
mov qword [rsp + 0x1b0], r13
mov qword [rsp + 0x1b8], rbp
lea rcx, [rsp + 0x2c0]
lea rdx, [rsp + 0x1e8]
lea r8, [rsp + 0x210]
call fcn.140098310
mov rax, qword [rsp + 0xc0]
sub rax, r14
add rax, r12
movabs rcx, 0xffffffffffffe
mov r8, rcx
sub r8, qword [rsp + 0x30]
add r8, rbx
mov r10, rcx
sub r10, qword [rsp + 0x38]
add r10, r15
mov r12, rcx
sub r12, qword [rsp + 0x40]
add r12, qword [rsp + 0x50]
sub rcx, qword [rsp + 0x48]
add rcx, qword [rsp + 0x28]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x148], rax
lea rax, [rbp*8]
add rax, rbp
lea rax, [rax*2]
add rax, rbp
imul rcx, rbp, 0x26
lea rdx, [r13*8]
add rdx, r13
lea rbx, [rdx*2]
add rbx, r13
mul rbp
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x28], rdx
add rbp, rbp
mov rax, rcx
mul r13
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rax
mov rax, rbx
mul r13
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x50], rdx
imul rbx, r13, 0x26
mov r11, r13
add r11, r13
mov rax, rcx
mul rsi
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x58], rax
mov rax, rbx
mul rsi
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xc8], rax
mov rax, rsi
mul rsi
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xd8], rax
mov rax, rcx
mul rdi
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x108], rax
mov rax, r11
mul rdi
mov r14, rax
mov rcx, rdx
lea r15, [rsi + rsi]
mov rax, r15
mul rdi
mov qword [rsp + 0x78], rax
mov qword [rsp + 0xc0], rdx
lea r9, [rdi + rdi]
mov rax, rdi
mul rdi
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xb0], rax
mov rax, rbp
mov rsi, qword [rsp + 0x70]
mul rsi
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0xf8], rax
mov rax, r11
mul rsi
mov rdi, rdx
mov r13, rax
mov rax, r15
mul rsi
mov r15, rdx
mov rbx, rax
mov rax, r9
mul rsi
mov r11, rdx
mov rbp, rax
mov rax, rsi
mul rsi
add rax, qword [rsp + 0xc8]
adc rdx, qword [rsp + 0xd0]
add rax, qword [rsp + 0x108]
adc rdx, qword [rsp + 0x110]
shld rdx, rax, 0xd
movabs r9, 0x7ffffffffffff
and rax, r9
add r14, qword [rsp + 0xd8]
adc rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x150], r8
add r14, qword [rsp + 0xf8]
adc rcx, qword [rsp + 0x100]
mov qword [rsp + 0x158], r10
add rbp, qword [rsp + 0x60]
adc r11, qword [rsp + 0x50]
add rbp, qword [rsp + 0x58]
adc r11, qword [rsp + 0x68]
add rbp, rdx
adc r11, 0
shld r11, rbp, 0xd
and rbp, r9
add rbx, qword [rsp + 0xb0]
adc r15, qword [rsp + 0xb8]
add rbx, qword [rsp + 0x30]
adc r15, qword [rsp + 0x38]
add rbx, r11
adc r15, 0
shld r15, rbx, 0xd
and rbx, r9
add r13, qword [rsp + 0x78]
adc rdi, qword [rsp + 0xc0]
add r13, qword [rsp + 0x40]
adc rdi, qword [rsp + 0x28]
add r13, r15
adc rdi, 0
shld rdi, r13, 0xd
mov qword [rsp + 0x160], r12
add rdi, r14
adc rcx, 0
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x168], rdx
shld rcx, rdi, 0xd
movq xmm0, rdi
movq xmm1, r13
lea rdx, [rcx + rcx*8]
lea rcx, [rcx + rdx*2]
add rcx, rax
mov rax, rcx
shr rax, 0x33
add rax, rbp
mov rdx, rax
shr rdx, 0x33
add rdx, rbx
mov rbp, r9
and rcx, r9
mov qword [rsp + 0x290], rcx
and rax, r9
mov qword [rsp + 0x298], rax
mov qword [rsp + 0x2a0], rdx
punpcklqdq xmm1, xmm0
pand xmm1, xmm6
movdqu xmmword [rsp + 0x2a8], xmm1
lea rcx, [rsp + 0x238]
lea rdx, [rsp + 0x148]
call fcn.140099e00
mov rsi, qword [rsp + 0x80]
lea rax, [rsi + rsi*8]
lea rax, [rsi + rax*2]
imul rbp, rsi, 0x26
mov rdx, qword [rsp + 0x88]
lea rcx, [rdx + rdx*8]
lea rcx, [rdx + rcx*2]
imul rbx, rdx, 0x26
mov rdi, rdx
mul rsi
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x48], rdx
mov rax, rbp
mul rdi
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], rax
mov rax, rcx
mul rdi
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
add rsi, rsi
lea r8, [rdi + rdi]
mov rax, rbp
mov rcx, qword [rsp + 0x90]
mul rcx
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x80], rax
mov rax, rbx
mul rcx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x58], rax
mov rax, rcx
mul rcx
mov rdi, rcx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x68], rax
mov rax, rbp
mov rcx, qword [rsp + 0x98]
mul rcx
mov r12, rdx
mov r13, rax
mov rax, r8
mul rcx
mov r14, rax
mov rbx, rdx
lea rbp, [rdi + rdi]
mov rax, rbp
mul rcx
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x30], rdx
lea r9, [rcx + rcx]
mov rax, rcx
mul rcx
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x90], rax
mov rax, rsi
mov rcx, qword [rsp + 0xe0]
mul rcx
mov r15, rdx
mov r10, rax
mov rax, r8
mul rcx
mov rdi, rdx
mov r8, rax
mov rax, rbp
mul rcx
mov r11, rdx
mov rbp, rax
mov rax, r9
mul rcx
mov r9, rdx
mov rsi, rax
mov rax, rcx
mul rcx
add rax, qword [rsp + 0x58]
adc rdx, qword [rsp + 0x60]
add rax, r13
adc rdx, r12
shld rdx, rax, 0xd
movabs rcx, 0x7ffffffffffff
and rax, rcx
add r14, qword [rsp + 0x68]
adc rbx, qword [rsp + 0x50]
add r14, r10
adc rbx, r15
add rsi, qword [rsp + 0x70]
adc r9, qword [rsp + 0x78]
add rsi, qword [rsp + 0x80]
adc r9, qword [rsp + 0x88]
add rsi, rdx
adc r9, 0
shld r9, rsi, 0xd
and rsi, rcx
add rbp, qword [rsp + 0x90]
adc r11, qword [rsp + 0x98]
add rbp, qword [rsp + 0x38]
adc r11, qword [rsp + 0x40]
add rbp, r9
adc r11, 0
shld r11, rbp, 0xd
and rbp, rcx
mov r9, rcx
add r8, qword [rsp + 0xc0]
adc rdi, qword [rsp + 0x30]
add r8, qword [rsp + 0x28]
adc rdi, qword [rsp + 0x48]
add r8, r11
adc rdi, 0
shld rdi, r8, 0xd
add rdi, r14
adc rbx, 0
shld rbx, rdi, 0xd
movq xmm0, rdi
movq xmm1, r8
lea rcx, [rbx + rbx*8]
lea rcx, [rbx + rcx*2]
mov rbx, qword [rsp + 0x118]
add rcx, rax
mov rax, rcx
shr rax, 0x33
add rax, rsi
mov rdx, rax
shr rdx, 0x33
add rdx, rbp
mov rbp, r9
and rcx, r9
mov qword [rsp + 0x260], rcx
and rax, r9
mov qword [rsp + 0x268], rax
mov qword [rsp + 0x270], rdx
mov rax, qword [rsp + 0xa0]
add rax, qword [rsp + 0x238]
mov qword [rsp + 0x170], rax
punpcklqdq xmm1, xmm0
pand xmm1, xmm6
movdqu xmmword [rsp + 0x278], xmm1
movdqu xmm0, xmmword [rsp + 0x218]
movdqu xmm1, xmmword [rsp + 0x228]
movdqu xmm2, xmmword [rsp + 0x240]
paddq xmm2, xmm0
movdqu xmm0, xmmword [rsp + 0x250]
paddq xmm0, xmm1
movdqu xmmword [rsp + 0x178], xmm2
movdqu xmmword [rsp + 0x188], xmm0
lea rcx, [rsp + 0x238]
lea rdx, [rsp + 0x2e8]
lea rsi, [rsp + 0x290]
mov r8, rsi
call fcn.140098310
mov rcx, rsi
lea rdx, [rsp + 0x148]
lea r8, [rsp + 0x170]
call fcn.140098310
mov esi, ebx
mov eax, dword [rsp + 0xec]
add eax, 0xffffffff
jb 0x140098e86
lea rsi, [rsp + 0x2c0]
lea rdx, [rsp + 0x260]
mov rcx, rsi
mov r8, rbx
call fcn.140099d80
lea rdi, [rsp + 0x290]
lea rdx, [rsp + 0x238]
mov rcx, rdi
mov r8, rbx
call fcn.140099d80
mov rax, qword [rdi + 0x20]
lea rdx, [rsp + 0x310]
mov qword [rdx + 0x20], rax
movaps xmm0, xmmword [rdi]
movaps xmm1, xmmword [rdi + 0x10]
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
mov rcx, rdi
call fcn.140090980
mov rcx, rsi
mov rdx, rsi
mov r8, rdi
call fcn.140098310
mov rcx, qword [rsp + 0xf0]
mov rdx, rsi
call fcn.140098730
mov rcx, qword [rsp + 0x338]
xor rcx, rsp
call fcn.1400f0560
movaps xmm6, xmmword [rsp + 0x340]
add rsp, 0x358
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret