Function at 0x14007d960
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x348
mov qword [rsp + 0x138], rcx
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0x340], rax
movabs rbp, 0x7ffffffffffff
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0x150], xmm0
movaps xmmword [rsp + 0x160], xmm1
and byte [rsp + 0x150], 0xf8
movzx eax, byte [rsp + 0x16f]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0x16f], al
mov r14d, dword [r8]
mov eax, dword [r8 + 0x10]
movzx edi, byte [r8 + 4]
movzx r15d, byte [r8 + 5]
movzx edx, byte [r8 + 6]
movzx r9d, byte [r8 + 7]
movzx r10d, byte [r8 + 8]
movzx r11d, byte [r8 + 9]
movzx esi, byte [r8 + 0xa]
movzx ebx, byte [r8 + 0x1b]
mov ecx, dword [r8 + 0x1c]
and ecx, 0x7fffffff
shl rcx, 0x14
shl ebx, 0xc
or rbx, rcx
movzx ecx, byte [r8 + 0x1a]
shl ecx, 4
or rcx, rbx
shl r15, 0x28
mov ebx, edx
and ebx, 7
shl rbx, 0x30
or rbx, r15
movzx r15d, byte [r8 + 0xb]
or rbx, r14
movzx r12d, byte [r8 + 0xc]
shl r15, 0x25
shl rdi, 0x20
or rbx, rdi
mov edi, r12d
and edi, 0x3f
shl rdi, 0x2d
or rdi, r15
movzx r15d, byte [r8 + 0xd]
shl rsi, 0x1d
or rdi, rsi
movzx esi, byte [r8 + 0xe]
shl r11d, 0x15
or rdi, r11
movzx r11d, byte [r8 + 0xf]
shl r10d, 0xd
or rdi, r10
movzx r10d, byte [r8 + 0x14]
shl r9d, 5
or rdi, r9
mov r9, rax
shl r9, 0x1a
shr edx, 3
or rdi, rdx
lea rdx, [rbp - 0x3ffffff]
and rdx, r9
movzx r9d, byte [r8 + 0x15]
mov r14d, dword [r8 + 0x16]
shl r11d, 0x12
or rdx, r11
mov r8, r14
shl r8, 0x17
shl r9d, 0xf
shl r10d, 7
shl esi, 0xa
shr r12d, 6
or rdx, rsi
lea r15, [rdx + r15*4]
or r15, r12
shr eax, 0x19
lea r13, [rbp - 0x7fffff]
and r13, r8
or r13, r9
or r13, r10
or r13, rax
shr r14d, 0x1c
or r14, rcx
mov qword [rsp + 0x2e8], rbx
mov qword [rsp + 0x2f0], rdi
mov qword [rsp + 0x2f8], r15
mov qword [rsp + 0x300], r13
mov qword [rsp + 0x308], r14
xorps xmm0, xmm0
movups xmmword [rsp + 0x2c8], xmm0
movups xmmword [rsp + 0x2d8], xmm0
mov qword [rsp + 0x2c0], 1
movaps xmmword [rsp + 0x290], xmm0
movaps xmmword [rsp + 0x2a0], xmm0
mov qword [rsp + 0x2b0], 0
movups xmmword [rsp + 0x268], xmm0
movups xmmword [rsp + 0x278], xmm0
mov qword [rsp + 0x260], 1
mov eax, 0xfe
xor ecx, ecx
lea rdx, [rbp - 1]
mov qword [rsp + 0x140], rdx
nop word cs:[rax + rax]
mov dword [rsp + 0xe4], eax
mov esi, ecx
shr eax, 3
movzx eax, byte [rsp + rax + 0x150]
mov ecx, dword [rsp + 0xe4]
and ecx, 7
bt eax, ecx
mov eax, 0
setb al
mov dword [rsp + 0x134], eax
xor esi, eax
mov rcx, qword [rsp + 0x2c0]
mov rdx, qword [rsp + 0x2c8]
neg rsi
mov rax, rcx
xor rax, rbx
and rax, rsi
xor rcx, rax
mov r11, rcx
mov qword [rsp + 0xc8], rcx
mov rcx, rax
mov rax, rdx
xor rax, rdi
and rax, rsi
xor rcx, rbx
mov r8, rcx
mov qword [rsp + 0xc0], rcx
xor rdx, rax
mov r10, rdx
mov qword [rsp + 0xa8], rdx
mov rdx, qword [rsp + 0x290]
mov r12, qword [rsp + 0x298]
xor rax, rdi
mov rbx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x260]
mov rcx, qword [rsp + 0x268]
mov r9, rax
mov qword [rsp + 0x2c0], r11
xor r9, rdx
and r9, rsi
xor rdx, r9
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x2c8], r10
xor r9, rax
mov rax, rcx
xor rax, r12
mov rdi, qword [rsp + 0x2d0]
and rax, rsi
xor r12, rax
mov qword [rsp + 0x28], r12
xor rax, rcx
mov rbp, rdi
xor rbp, r15
and rbp, rsi
mov qword [rsp + 0x290], rdx
xor rdi, rbp
mov qword [rsp + 0x260], r9
mov qword [rsp + 0xb8], r9
mov qword [rsp + 0x298], r12
mov qword [rsp + 0x268], rax
mov rdx, rax
mov qword [rsp + 0xa0], rax
xor rbp, r15
mov rcx, qword [rsp + 0x2a0]
mov rax, qword [rsp + 0x270]
mov r11, rax
xor r11, rcx
and r11, rsi
xor rcx, r11
mov r10, rcx
mov qword [rsp + 0xb0], rcx
xor r11, rax
movabs rcx, 0xffffffffffffe
lea rax, [r8 + rcx]
add rax, 0xffffffffffffffdc
sub rax, r9
mov qword [rsp + 0x198], rax
lea rax, [rbx + rcx]
sub rax, rdx
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x2d0], rdi
mov r15, qword [rsp + 0x2d8]
mov r8, r15
xor r8, r13
and r8, rsi
xor r15, r8
xor r8, r13
lea rax, [rcx + rbp]
mov r13, rcx
sub rax, r11
mov qword [rsp + 0x1a8], rax
mov qword [rsp + 0x2a0], r10
mov qword [rsp + 0x270], r11
mov r9, qword [rsp + 0x2a8]
mov rax, qword [rsp + 0x278]
mov rdx, rax
xor rdx, r9
and rdx, rsi
xor r9, rdx
xor rdx, rax
mov qword [rsp + 0x2d8], r15
mov rbx, qword [rsp + 0x2e0]
mov r10, rbx
xor r10, r14
and r10, rsi
mov qword [rsp + 0x2a8], r9
mov qword [rsp + 0x278], rdx
mov rax, qword [rsp + 0x2b0]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x280]
mov qword [rsp + 0x98], rcx
xor rcx, rax
and rcx, rsi
lea rsi, [r8 + r13]
sub rsi, rdx
mov qword [rsp + 0x1b0], rsi
mov rsi, qword [rsp + 0xc8]
lea r12, [rsi + r13]
add r12, 0xffffffffffffffdc
mov rax, qword [rsp + 0x30]
sub r12, rax
mov qword [rsp + 0x58], r12
add rax, rsi
mov qword [rsp + 0x30], rax
xor rbx, r10
xor r10, r14
mov rsi, qword [rsp + 0xa8]
lea r12, [rsi + r13]
mov rax, qword [rsp + 0x28]
sub r12, rax
add rax, rsi
mov qword [rsp + 0x28], rax
lea rsi, [rdi + r13]
mov rax, qword [rsp + 0xb0]
sub rsi, rax
add rax, rdi
mov qword [rsp + 0xb0], rax
lea rdi, [r15 + r13]
sub rdi, r9
add r9, r15
mov qword [rsp + 0x38], r9
mov rax, qword [rsp + 0xb8]
add rax, qword [rsp + 0xc0]
mov r15, qword [rsp + 0x40]
xor r15, rcx
xor rcx, qword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
add r14, qword [rsp + 0x20]
add r11, rbp
add rdx, r8
mov qword [rsp + 0x2e0], rbx
mov qword [rsp + 0x2b0], r15
lea rbp, [rbx + r13]
sub rbp, r15
add r15, rbx
mov qword [rsp + 0x280], rcx
lea r8, [r10 + r13]
sub r8, rcx
add rcx, r10
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1c8], r14
mov qword [rsp + 0x1d0], r11
mov qword [rsp + 0x1b8], r8
mov qword [rsp + 0x1d8], rdx
mov qword [rsp + 0x1e0], rcx
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x170], rbx
mov qword [rsp + 0x178], r12
mov qword [rsp + 0x180], rsi
mov qword [rsp + 0x188], rdi
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1e8], rax
mov qword [rsp + 0x190], rbp
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x1f0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x1f8], rax
mov qword [rsp + 0x200], r9
mov qword [rsp + 0x208], r15
lea rcx, [rsp + 0x260]
lea rdx, [rsp + 0x198]
lea r8, [rsp + 0x1e8]
call fcn.140081a60
lea rcx, [rsp + 0x290]
lea rdx, [rsp + 0x1c0]
lea r8, [rsp + 0x170]
call fcn.140081a60
lea rax, [rbp*8]
add rax, rbp
lea rax, [rax*2]
add rax, rbp
imul rcx, rbp, 0x26
lea rdx, [rdi + rdi*8]
lea r8, [rdi + rdx*2]
mul rbp
mov qword [rsp + 0xa8], rax
mov r14, rdx
mov rax, rcx
mul rdi
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rdx
imul r10, rdi, 0x26
lea r9, [rdi + rdi]
mov rax, r8
mul rdi
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xa0], rax
mov rax, rcx
mul rsi
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x98], rax
mov rax, r10
mul rsi
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
lea r8, [rsi + rsi]
mov rax, rsi
mul rsi
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x78], rax
mov rax, rcx
mul r12
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rax
mov rax, r9
mul r12
mov r13, rax
mov r11, rdx
add rbp, rbp
mov rax, r8
mul r12
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x90], rax
mov rax, r12
mul r12
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x70], rax
mov rax, rbp
mov rsi, rbx
mul rbx
mov rcx, rax
mov r10, rdx
lea rbp, [r12 + r12]
mov rax, r9
mul rbx
mov rdi, rdx
mov rbx, rax
mov rax, r8
mul rsi
mov r9, rdx
mov r12, rax
mov rax, rbp
mul rsi
mov r8, rdx
mov rbp, rax
mov rax, rsi
mul rsi
add rax, qword [rsp + 0x60]
adc rdx, qword [rsp + 0x68]
add rax, qword [rsp + 0x48]
adc rdx, qword [rsp + 0x50]
shld rdx, rax, 0xd
movabs rsi, 0x7ffffffffffff
and rax, rsi
add r13, qword [rsp + 0x78]
adc r11, qword [rsp + 0x88]
add r13, rcx
adc r11, r10
add rbp, qword [rsp + 0xa0]
adc r8, qword [rsp + 0xb8]
add rbp, qword [rsp + 0x98]
adc r8, qword [rsp + 0x20]
add rbp, rdx
adc r8, 0
shld r8, rbp, 0xd
and rbp, rsi
add r12, qword [rsp + 0x70]
adc r9, qword [rsp + 0x80]
add r12, qword [rsp + 0xc0]
adc r9, qword [rsp + 0xc8]
add r12, r8
adc r9, 0
shld r9, r12, 0xd
and r12, rsi
add rbx, qword [rsp + 0x90]
adc rdi, qword [rsp + 0x40]
add rbx, qword [rsp + 0xa8]
adc rdi, r14
add rbx, r9
adc rdi, 0
shld rdi, rbx, 0xd
and rbx, rsi
mov qword [rsp + 0xb8], rbx
add rdi, r13
adc r11, 0
shld r11, rdi, 0xd
and rdi, rsi
mov qword [rsp + 0xa8], rdi
lea rcx, [r11 + r11*8]
lea rcx, [r11 + rcx*2]
add rcx, rax
mov r14, rcx
shr r14, 0x33
add r14, rbp
and rcx, rsi
mov qword [rsp + 0xc8], rcx
mov rcx, r14
shr rcx, 0x33
add rcx, r12
mov qword [rsp + 0xc0], rcx
lea rax, [r15 + r15*8]
lea rax, [r15 + rax*2]
imul rcx, r15, 0x26
mov r10, qword [rsp + 0x38]
lea rdx, [r10 + r10*8]
lea r8, [r10 + rdx*2]
mul r15
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x20], rdx
mov rax, rcx
mul r10
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x98], rdx
imul r9, r10, 0x26
lea r12, [r10 + r10]
mov rax, r8
mul r10
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x88], rax
mov rax, rcx
mov r8, qword [rsp + 0xb0]
mul r8
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x80], rax
mov rax, r9
mul r8
mov qword [rsp + 0x48], rax
mov rbp, rdx
lea r10, [r8 + r8]
mov rax, r8
mul r8
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x58], rax
mov rax, rcx
mov rcx, qword [rsp + 0x28]
mul rcx
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xd0], rax
mov rax, r12
mul rcx
mov rsi, rax
mov r11, rdx
add r15, r15
mov rax, r10
mul rcx
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x70], rax
mov rax, rcx
mul rcx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x50], rax
mov rax, r15
mov r13, qword [rsp + 0x30]
mul r13
mov r9, rax
mov r8, rdx
add rcx, rcx
mov rax, r12
mul r13
mov qword [rsp + 0x28], rdx
mov r12, rax
mov rax, r10
mul r13
mov rdi, rdx
mov rbx, rax
mov rax, rcx
mul r13
mov r15, rax
mov rcx, rdx
movabs r10, 0x7ffffffffffff
and r14, r10
mov qword [rsp + 0xb0], r14
mov rax, r13
mul r13
add rax, qword [rsp + 0x48]
adc rbp, rdx
add rax, qword [rsp + 0xd0]
adc rbp, qword [rsp + 0xd8]
shld rbp, rax, 0xd
and rax, r10
add rsi, qword [rsp + 0x58]
adc r11, qword [rsp + 0x68]
add rsi, r9
adc r11, r8
add r15, qword [rsp + 0x88]
adc rcx, qword [rsp + 0x38]
add r15, qword [rsp + 0x80]
adc rcx, qword [rsp + 0x90]
add r15, rbp
adc rcx, 0
shld rcx, r15, 0xd
and r15, r10
add rbx, qword [rsp + 0x50]
adc rdi, qword [rsp + 0x60]
add rbx, qword [rsp + 0x40]
adc rdi, qword [rsp + 0x98]
add rbx, rcx
adc rdi, 0
shld rdi, rbx, 0xd
and rbx, r10
mov rcx, r12
add rcx, qword [rsp + 0x70]
mov r12, qword [rsp + 0x28]
adc r12, qword [rsp + 0x78]
add rcx, qword [rsp + 0xa0]
adc r12, qword [rsp + 0x20]
add rcx, rdi
adc r12, 0
shld r12, rcx, 0xd
and rcx, r10
mov qword [rsp + 0x38], rcx
add r12, rsi
adc r11, 0
shld r11, r12, 0xd
mov r9, r12
lea rcx, [r11 + r11*8]
lea rdi, [r11 + rcx*2]
add rdi, rax
mov rax, rdi
shr rax, 0x33
add rax, r15
mov qword [rsp + 0x30], rax
mov rcx, rax
shr rcx, 0x33
add rcx, rbx
mov qword [rsp + 0x20], rcx
mov rax, qword [rsp + 0x260]
mov r11, qword [rsp + 0x268]
mov rcx, qword [rsp + 0x290]
mov rdx, qword [rsp + 0x298]
lea r8, [rcx + rax]
mov qword [rsp + 0xa0], r8
movabs r8, 0xffffffffffffe
lea r10, [rax + r8]
add r10, 0xffffffffffffffdc
sub r10, rcx
mov qword [rsp + 0x70], r10
lea rax, [rdx + r11]
mov qword [rsp + 0x98], rax
add r11, r8
sub r11, rdx
mov qword [rsp + 0xd0], r11
mov rbp, qword [rsp + 0x270]
mov rax, qword [rsp + 0x2a0]
lea rcx, [rax + rbp]
mov qword [rsp + 0x40], rcx
add rbp, r8
sub rbp, rax
mov rsi, qword [rsp + 0x278]
mov rax, qword [rsp + 0x2a8]
lea rcx, [rax + rsi]
mov qword [rsp + 0x90], rcx
add rsi, r8
sub rsi, rax
mov rbx, qword [rsp + 0x280]
mov rax, qword [rsp + 0x2b0]
lea rcx, [rax + rbx]
mov qword [rsp + 0x88], rcx
add rbx, r8
sub rbx, rax
mov r12, qword [rsp + 0xc8]
mov qword [rsp + 0x238], r12
mov r14, qword [rsp + 0xb0]
mov qword [rsp + 0x240], r14
mov r15, qword [rsp + 0xc0]
mov qword [rsp + 0x248], r15
mov r13, qword [rsp + 0xb8]
mov qword [rsp + 0x250], r13
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x258], rax
movabs rax, 0x7ffffffffffff
and r9, rax
mov qword [rsp + 0x28], r9
and rdi, rax
mov rcx, qword [rsp + 0x30]
and rcx, rax
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x210], rdi
mov qword [rsp + 0x218], rcx
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x220], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x228], rax
mov qword [rsp + 0x230], r9
mov qword [rsp + 0x1c0], r10
mov qword [rsp + 0x1c8], r11
mov qword [rsp + 0x1d0], rbp
mov qword [rsp + 0x1d8], rsi
mov qword [rsp + 0x1e0], rbx
lea rcx, [rsp + 0x2c0]
lea rdx, [rsp + 0x210]
lea r8, [rsp + 0x238]
call fcn.140081a60
movabs rax, 0xffffffffffffe
lea rcx, [rdi + rax]
add rcx, 0xffffffffffffffdc
sub rcx, r12
mov qword [rsp + 0x80], rcx
mov rcx, qword [rsp + 0x30]
add rcx, rax
sub rcx, r14
mov qword [rsp + 0x30], rcx
mov r12, qword [rsp + 0x20]
add r12, rax
sub r12, r15
mov rdi, qword [rsp + 0x38]
add rdi, rax
sub rdi, r13
mov r13, qword [rsp + 0x28]
add r13, rax
lea rax, [rbx + rbx*8]
lea rax, [rbx + rax*2]
mul rbx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], rdx
lea rax, [rsi + rsi*8]
lea r9, [rsi + rax*2]
imul r8, rbx, 0x26
mov rax, r8
mul rsi
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x20], rdx
imul r10, rsi, 0x26
lea rcx, [rsi + rsi]
mov rax, r9
mul rsi
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x58], rax
mov rax, r8
mul rbp
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x50], rax
mov rax, r10
mul rbp
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rdx
lea r11, [rbp*2]
mov rax, rbp
mul rbp
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0x118], rax
mov rax, r8
mov r8, qword [rsp + 0xd0]
mul r8
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0xf0], rax
mov rax, rcx
mul r8
mov r10, rax
mov r9, rdx
add rbx, rbx
mov rax, r11
mul r8
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0xd8], rax
mov rax, r8
mul r8
mov rsi, r8
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x110], rax
mov rax, rbx
mov r15, qword [rsp + 0x70]
mul r15
mov r8, rax
mov qword [rsp + 0xe8], rdx
lea r14, [rsi + rsi]
mov rax, rcx
mul r15
mov rcx, rdx
mov rsi, rax
mov rax, r11
mul r15
mov rbp, rdx
mov rbx, rax
mov rax, r14
mul r15
mov r14, rax
mov r11, rdx
sub r13, qword [rsp + 0xa8]
mov rax, r15
mul r15
add rax, qword [rsp + 0x100]
adc rdx, qword [rsp + 0x108]
add rax, qword [rsp + 0xf0]
adc rdx, qword [rsp + 0xf8]
shld rdx, rax, 0xd
movabs r15, 0x7ffffffffffff
and rax, r15
add r10, qword [rsp + 0x118]
adc r9, qword [rsp + 0x128]
add r10, r8
adc r9, qword [rsp + 0xe8]
add r14, qword [rsp + 0x58]
adc r11, qword [rsp + 0x68]
add r14, qword [rsp + 0x50]
adc r11, qword [rsp + 0x60]
add r14, rdx
adc r11, 0
shld r11, r14, 0xd
and r14, r15
add rbx, qword [rsp + 0x110]
adc rbp, qword [rsp + 0x120]
add rbx, qword [rsp + 0x78]
adc rbp, qword [rsp + 0x20]
add rbx, r11
adc rbp, 0
shld rbp, rbx, 0xd
and rbx, r15
add rsi, qword [rsp + 0xd8]
adc rcx, qword [rsp + 0x48]
add rsi, qword [rsp + 0x38]
adc rcx, qword [rsp + 0x28]
add rsi, rbp
adc rcx, 0
shld rcx, rsi, 0xd
and rsi, r15
mov qword [rsp + 0x28], rsi
add rcx, r10
adc r9, 0
shld r9, rcx, 0xd
mov rdx, rcx
lea rcx, [r9 + r9*8]
lea r8, [r9 + rcx*2]
add r8, rax
mov rcx, r8
shr rcx, 0x33
add rcx, r14
mov rax, rcx
shr rax, 0x33
add rax, rbx
mov qword [rsp + 0x20], rax
mov rbp, qword [rsp + 0x80]
mov qword [rsp + 0x170], rbp
mov rsi, qword [rsp + 0x30]
mov qword [rsp + 0x178], rsi
mov r10, r12
mov qword [rsp + 0x180], r12
mov qword [rsp + 0x188], rdi
and rdx, r15
mov qword [rsp + 0x38], rdx
mov rbx, r13
mov rax, r13
mov r9d, 0x1db42
mul r9
mov r12, rax
mov r11, rdx
and r8, r15
mov qword [rsp + 0x78], r8
mov rax, rdi
mul r9
mov r13, rdx
mov r8, rax
mov rax, r10
mul r9
mov r10, rdx
mov r14, rax
mov rax, rsi
mul r9
mov rdi, rax
mov rsi, rdx
and rcx, r15
mov qword [rsp + 0x68], rcx
mov rax, rbp
mul r9
shld rdx, rax, 0xd
and rax, qword [rsp + 0x140]
add rdx, rdi
adc rsi, 0
shld rsi, rdx, 0xd
and rdx, r15
add rsi, r14
adc r10, 0
shld r10, rsi, 0xd
and rsi, r15
add r10, r8
adc r13, 0
shld r13, r10, 0xd
and r10, r15
add r13, r12
adc r11, 0
mov qword [rsp + 0x190], rbx
shld r11, r13, 0xd
lea rcx, [r11 + r11*8]
lea rcx, [r11 + rcx*2]
add rcx, rax
mov r9, rcx
shr r9, 0x33
add r9, rdx
mov rax, r9
shr rax, 0x33
add rax, rsi
mov qword [rsp + 0x80], rax
and r13, r15
mov qword [rsp + 0x30], r13
and rcx, r15
mov qword [rsp + 0x70], rcx
mov rbx, qword [rsp + 0x88]
lea rax, [rbx + rbx*8]
lea rax, [rbx + rax*2]
mul rbx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rdx
mov rcx, qword [rsp + 0x90]
lea rax, [rcx + rcx*8]
lea r11, [rcx + rax*2]
imul r8, rbx, 0x26
mov rax, r8
mul rcx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdx
imul rdi, rcx, 0x26
lea rsi, [rcx + rcx]
mov rax, r11
mul rcx
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0xd0], rax
mov rax, r8
mov rcx, qword [rsp + 0x40]
mul rcx
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0x128], rax
mov rax, rdi
mul rcx
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rdx
lea r11, [rcx + rcx]
mov rax, rcx
mul rcx
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x108], rax
mov rax, r8
mov rcx, qword [rsp + 0x98]
mul rcx
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xe8], rax
mov rax, rsi
mul rcx
mov r8, rax
mov r12, rdx
add rbx, rbx
mov rax, r11
mul rcx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x88], rax
mov rax, rcx
mul rcx
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x110], rax
mov rax, rbx
mov r15, qword [rsp + 0xa0]
mul r15
mov rdi, rax
mov qword [rsp + 0x148], rdx
add rcx, rcx
mov rax, rsi
mul r15
mov r14, rdx
mov r13, rax
mov rax, r11
mul r15
mov rbx, rdx
mov rbp, rax
mov rax, rcx
mul r15
mov rsi, rax
mov r11, rdx
movabs rcx, 0x7ffffffffffff
and r9, rcx
mov rax, r15
mul r15
add rax, qword [rsp + 0xf8]
adc rdx, qword [rsp + 0x100]
add rax, qword [rsp + 0xe8]
adc rdx, qword [rsp + 0xf0]
shld rdx, rax, 0xd
and rax, rcx
mov r15, rcx
add r8, qword [rsp + 0x108]
adc r12, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x290], rcx
add r8, rdi
adc r12, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x298], rcx
add rsi, qword [rsp + 0xd0]
adc r11, qword [rsp + 0x90]
add rsi, qword [rsp + 0x128]
adc r11, qword [rsp + 0xd8]
add rsi, rdx
adc r11, 0
shld r11, rsi, 0xd
and rsi, r15
add rbp, qword [rsp + 0x110]
adc rbx, qword [rsp + 0x120]
add rbp, qword [rsp + 0x48]
adc rbx, qword [rsp + 0x50]
add rbp, r11
adc rbx, 0
shld rbx, rbp, 0xd
and rbp, r15
mov r11, r15
add r13, qword [rsp + 0x88]
adc r14, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x2a0], rcx
add r13, qword [rsp + 0x58]
adc r14, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x2a8], rcx
add r13, rbx
adc r14, 0
shld r14, r13, 0xd
and r13, r15
add r14, r8
adc r12, 0
shld r12, r14, 0xd
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x2b0], rcx
lea rcx, [r12 + r12*8]
lea rbx, [r12 + rcx*2]
add rbx, rax
mov rdi, rbx
shr rdi, 0x33
add rdi, rsi
mov r15, rdi
shr r15, 0x33
add r15, rbp
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x260], rax
add rax, qword [rsp + 0xc8]
mov rcx, rax
mov qword [rsp + 0x268], r9
add r9, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x270], rax
add rax, qword [rsp + 0xc0]
mov rdx, rax
mov qword [rsp + 0x278], r10
add r10, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x280], rax
add rax, qword [rsp + 0xa8]
mov qword [rsp + 0x198], rcx
mov qword [rsp + 0x1a0], r9
mov qword [rsp + 0x1a8], rdx
mov qword [rsp + 0x1b0], r10
mov qword [rsp + 0x1b8], rax
and r14, r11
and rbx, r11
and rdi, r11
lea rcx, [rsp + 0x260]
lea rdx, [rsp + 0x2e8]
lea rsi, [rsp + 0x290]
mov r8, rsi
call fcn.140081a60
mov rcx, rsi
lea rdx, [rsp + 0x170]
lea r8, [rsp + 0x198]
call fcn.140081a60
mov ecx, dword [rsp + 0x134]
mov eax, dword [rsp + 0xe4]
add eax, 0xffffffff
jb 0x14007db80
mov eax, ecx
neg rax
mov rcx, qword [rsp + 0x2c0]
mov rdx, qword [rsp + 0x2c8]
xor rbx, rcx
and rbx, rax
xor rbx, rcx
mov qword [rsp + 0x2c0], rbx
xor rdi, rdx
and rdi, rax
xor rdi, rdx
mov qword [rsp + 0x2c8], rdi
mov rcx, qword [rsp + 0x2d0]
xor r15, rcx
and r15, rax
xor r15, rcx
mov qword [rsp + 0x2d0], r15
mov rcx, qword [rsp + 0x2d8]
xor r13, rcx
and r13, rax
xor r13, rcx
mov qword [rsp + 0x2d8], r13
mov rcx, qword [rsp + 0x2e0]
xor r14, rcx
and r14, rax
movq xmm0, rax
pshufd xmm0, xmm0, 0x44
movdqa xmm1, xmm0
pandn xmm1, xmmword [rsp + 0x290]
xor r14, rcx
movdqa xmm2, xmmword [rsp + 0x260]
pand xmm2, xmm0
por xmm2, xmm1
movdqa xmmword [rsp + 0x290], xmm2
movdqa xmm1, xmm0
pandn xmm1, xmmword [rsp + 0x2a0]
mov qword [rsp + 0x2e0], r14
pand xmm0, xmmword [rsp + 0x270]
por xmm0, xmm1
movdqa xmmword [rsp + 0x2a0], xmm0
mov rcx, qword [rsp + 0x2b0]
mov rdx, qword [rsp + 0x280]
xor rdx, rcx
and rdx, rax
xor rdx, rcx
mov qword [rsp + 0x2b0], rdx
mov qword [rsp + 0x330], rdx
movaps xmm0, xmmword [rsp + 0x2a0]
movaps xmmword [rsp + 0x320], xmm0
movaps xmm0, xmmword [rsp + 0x290]
movaps xmmword [rsp + 0x310], xmm0
lea rsi, [rsp + 0x290]
lea rdx, [rsp + 0x310]
mov rcx, rsi
call fcn.14007ee00
lea rdi, [rsp + 0x2c0]
mov rcx, rdi
mov rdx, rdi
mov r8, rsi
call fcn.140081a60
mov rsi, qword [rsp + 0x138]
mov rcx, rsi
mov rdx, rdi
call fcn.1400731f0
lea rcx, [0x14039d5d0]
mov r8d, 0x20
mov rdx, rsi
call fcn.140098870
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
mov rcx, qword [rsp + 0x340]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x14007edee
add rsp, 0x348
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14029fd30
int3