Function at 0x14003d100
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x428
mov r14, r9
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x140396de8]
xor rax, rsp
mov qword [rsp + 0x420], rax
lea r8, [rsp + 0x370]
mov edx, 0x20
mov rcx, r9
call fcn.1400677a0
and byte [rsp + 0x370], 0xf8
movzx eax, byte [rsp + 0x38f]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0x38f], al
lea r15, [rsp + 0x298]
mov rcx, r15
call fcn.140068da0
lea rdx, [rsp + 0x390]
mov r8d, 0x20
mov rcx, r15
call fcn.140068e30
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.140068e30
lea r12, [rsp + 0x250]
mov rcx, r12
mov rdx, r15
call fcn.140068f20
mov rcx, r12
call fcn.14003c3e0
lea r8, [0x1402d66b0]
lea r13, [rsp + 0x1b0]
mov rcx, r13
mov rdx, r12
call fcn.14003b490
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x190], rax
movups xmm0, xmmword [rsp + 0x200]
movups xmm1, xmmword [rsp + 0x210]
movaps xmmword [rsp + 0x180], xmm1
movaps xmmword [rsp + 0x170], xmm0
lea r12, [rsp + 0x3d8]
lea rdx, [rsp + 0x170]
mov rcx, r12
call fcn.140041e50
lea rbp, [rsp + 0x170]
mov rcx, rbp
mov rdx, r13
mov r8, r12
call fcn.140044890
lea rdx, [rsp + 0x1d8]
lea r13, [rsp + 0x3b0]
mov rcx, r13
mov r8, r12
call fcn.140044890
mov qword [rsp + 0x168], rsi
mov rcx, rsi
mov rdx, r13
call fcn.140037670
lea rcx, [rsp + 0x400]
mov rdx, rbp
call fcn.140037670
movzx eax, byte [rsp + 0x400]
shl al, 7
xor byte [rsi + 0x1f], al
mov rcx, r15
call fcn.140068da0
mov r8d, 0x20
mov rcx, r15
mov rdx, rsi
call fcn.140068e30
add r14, 0x20
mov r8d, 0x20
mov rcx, r15
mov rdx, r14
call fcn.140068e30
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.140068e30
lea rdi, [rsp + 0x170]
mov rcx, rdi
mov rdx, r15
call fcn.140068f20
mov rcx, rdi
call fcn.14003c3e0
movzx eax, word [rsp + 0x170]
movzx ebx, byte [rsp + 0x172]
and ebx, 0x1f
shl ebx, 0x10
or rbx, rax
movzx eax, word [rsp + 0x175]
movzx r14d, byte [rsp + 0x177]
shl r14d, 0x10
or r14d, eax
movzx eax, word [rsp + 0x17d]
movzx ecx, byte [rsp + 0x17f]
shl ecx, 0x10
or ecx, eax
mov qword [rsp + 0x28], rcx
movzx eax, word [rsp + 0x182]
movzx ecx, byte [rsp + 0x184]
shl rcx, 0x10
or rcx, rax
mov qword [rsp + 0x68], rcx
movzx eax, word [rsp + 0x185]
movzx ecx, byte [rsp + 0x187]
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov qword [rsp + 0xb0], rcx
movzx eax, word [rsp + 0x18a]
movzx ecx, byte [rsp + 0x18c]
shl ecx, 0x10
or ecx, eax
mov qword [rsp + 0x70], rcx
movzx eax, word [rsp + 0x370]
movzx ecx, byte [rsp + 0x372]
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov r9, rcx
movzx eax, word [rsp + 0x375]
movzx edx, byte [rsp + 0x377]
shl edx, 0x10
or edx, eax
movzx eax, word [rsp + 0x37d]
movzx r15d, byte [rsp + 0x37f]
shl r15d, 0x10
or r15d, eax
movzx eax, word [rsp + 0x382]
movzx ecx, byte [rsp + 0x384]
shl rcx, 0x10
or rcx, rax
mov qword [rsp + 0x20], rcx
movzx eax, word [rsp + 0x385]
movzx ecx, byte [rsp + 0x387]
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov qword [rsp + 0x78], rcx
movzx eax, word [rsp + 0x38a]
movzx ecx, byte [rsp + 0x38c]
shl ecx, 0x10
or ecx, eax
mov qword [rsp + 0x40], rcx
movzx eax, word [rsp + 0x250]
movzx ecx, byte [rsp + 0x252]
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov qword [rsp + 0xc0], rcx
movzx ecx, byte [rsp + 0x257]
shl ecx, 0x10
movzx eax, word [rsp + 0x255]
or ecx, eax
mov qword [rsp + 0xb8], rcx
movzx ecx, byte [rsp + 0x25f]
shl ecx, 0x10
movzx eax, word [rsp + 0x25d]
or ecx, eax
mov qword [rsp + 0x110], rcx
movzx ecx, byte [rsp + 0x264]
shl rcx, 0x10
movzx eax, word [rsp + 0x262]
or rcx, rax
mov qword [rsp + 0x50], rcx
movzx esi, byte [rsp + 0x26c]
shl esi, 0x10
movzx eax, word [rsp + 0x26a]
or esi, eax
mov qword [rsp + 0x108], rsi
mov r13d, dword [rsp + 0x172]
shr r13d, 5
and r13d, 0x1fffff
mov eax, dword [rsp + 0x372]
shr eax, 5
and eax, 0x1fffff
mov r11, rax
mov rax, rbx
imul rax, r11
mov rsi, r9
imul rsi, r13
add rsi, rax
mov qword [rsp + 0xf0], rsi
shr r14d, 2
and r14d, 0x1fffff
mov rax, r11
imul rax, r13
mov r10, r9
imul r10, r14
add r10, rax
shr edx, 2
and edx, 0x1fffff
mov rax, rdx
imul rax, rbx
add r10, rax
mov qword [rsp + 0x100], r10
mov eax, dword [rsp + 0x257]
shr eax, 7
and eax, 0x1fffff
mov r10, rdx
mov r8, rdx
imul r10, r13
add r10, rax
mov qword [rsp + 0xf8], r10
mov esi, dword [rsp + 0x177]
shr esi, 7
and esi, 0x1fffff
mov ebp, dword [rsp + 0x377]
shr ebp, 7
and ebp, 0x1fffff
mov rax, rbx
imul rax, rbp
mov rdx, r9
imul rdx, rsi
add rdx, rax
mov rax, r14
imul rax, r11
add rdx, rax
mov qword [rsp + 0xd0], rdx
mov rax, rbp
imul rax, r13
mov rdx, r11
mov qword [rsp + 0x48], r11
imul rdx, rsi
add rdx, rax
mov eax, dword [rsp + 0x17a]
shr eax, 4
and eax, 0x1fffff
mov r10, r9
mov r12, r9
imul r10, rax
mov r9, rax
add r10, rdx
mov ecx, dword [rsp + 0x37a]
shr ecx, 4
and ecx, 0x1fffff
mov rax, rbx
imul rax, rcx
add r10, rax
mov rdi, r8
mov rax, r8
imul rax, r14
add r10, rax
mov qword [rsp + 0x160], r10
mov rax, rcx
mov qword [rsp + 0x30], rcx
imul rax, r13
mov rdx, r14
imul rdx, rbp
mov qword [rsp + 0x80], rbp
add rdx, rax
shr r15d, 1
and r15d, 0x1fffff
mov qword [rsp + 0x38], r15
imul r15, rbx
mov r10, r8
imul r10, rsi
mov qword [rsp + 0xa8], rsi
add r10, r15
mov r15, qword [rsp + 0x28]
shr r15d, 1
and r15d, 0x1fffff
mov qword [rsp + 0x28], r15
mov rax, r11
imul rax, r9
mov r8, r12
imul r8, r15
add r8, rax
add r8, rdx
add r8, r10
mov qword [rsp + 0x158], r8
mov edx, dword [rsp + 0x37f]
shr edx, 6
and edx, 0x1fffff
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0xc8], rbx
mov rax, rbx
imul rax, rdx
mov r15, qword [rsp + 0x38]
mov rdx, r15
imul rdx, r13
add rdx, rax
mov rax, r14
imul rax, rcx
mov r10, rdi
mov r11, r9
imul r10, r9
add r10, rax
mov r9d, dword [rsp + 0x17f]
shr r9d, 6
and r9d, 0x1fffff
mov rax, rbp
imul rax, rsi
mov qword [rsp + 0x58], r12
mov r8, r12
imul r8, r9
mov rbp, r9
mov qword [rsp + 0x98], r9
add r8, rax
mov r9, qword [rsp + 0x28]
mov rax, r9
mov rsi, qword [rsp + 0x48]
imul rax, rsi
add r8, rax
add r8, r10
add r8, rdx
mov qword [rsp + 0x150], r8
mov rax, qword [rsp + 0x20]
shr rax, 3
mov qword [rsp + 0x20], rax
imul rax, rbx
mov rdx, r15
imul rdx, r14
mov qword [rsp + 0xa0], r14
add rdx, rax
mov rax, qword [rsp + 0x50]
shr rax, 3
add rdx, rax
mov qword [rsp + 0x148], rdx
mov r10, qword [rsp + 0x60]
mov rax, r10
imul rax, r13
mov rbx, rdi
mov qword [rsp + 0x88], rdi
mov rcx, rdi
imul rcx, r9
add rcx, rax
mov r15, qword [rsp + 0x80]
mov rax, r15
imul rax, r11
mov rdi, r11
mov qword [rsp + 0x90], r11
mov rdx, rsi
imul rdx, rbp
add rdx, rax
mov r9, qword [rsp + 0x68]
shr r9, 3
mov r8, r12
imul r8, r9
mov rbp, r9
add r8, rdx
mov r9, qword [rsp + 0x30]
mov rax, r9
mov r12, qword [rsp + 0xa8]
imul rax, r12
add r8, rax
add r8, rcx
mov qword [rsp + 0x140], r8
mov rsi, qword [rsp + 0x78]
mov rax, rsi
mov r11, qword [rsp + 0xc8]
imul rax, r11
movzx ecx, word [rsp + 0x265]
add rax, rcx
mov rcx, r14
imul rcx, r10
mov r14, qword [rsp + 0x38]
mov rdx, r14
imul rdx, r12
add rdx, rcx
mov rcx, qword [rsp + 0x20]
imul rcx, r13
add rdx, rcx
mov rcx, r9
imul rcx, rdi
mov r10, rbx
imul r10, qword [rsp + 0x98]
add r10, rcx
mov rcx, rbp
mov qword [rsp + 0x68], rbp
imul rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
mov r9, rdi
mov rbx, qword [rsp + 0xb0]
imul r9, rbx
add r9, rcx
mov r8, qword [rsp + 0x28]
mov rcx, r8
imul rcx, r15
add r9, rcx
add r9, r10
add r9, rdx
add r9, rax
mov qword [rsp + 0x138], r9
mov ecx, dword [rsp + 0x387]
shr ecx, 5
and ecx, 0x1fffff
mov qword [rsp + 0x50], rcx
imul r11, rcx
imul rsi, r13
add rsi, r11
mov eax, dword [rsp + 0x267]
shr eax, 5
and eax, 0x1fffff
add rsi, rax
mov qword [rsp + 0x130], rsi
mov r10, qword [rsp + 0x60]
mov rax, r10
imul rax, r12
mov rcx, r14
mov r11, qword [rsp + 0x90]
imul rcx, r11
add rcx, rax
mov rax, qword [rsp + 0x20]
mov r14, qword [rsp + 0xa0]
imul rax, r14
add rcx, rax
imul r8, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x88]
mov r15, rsi
imul r15, rbp
add r15, r8
mov r9d, dword [rsp + 0x187]
shr r9d, 5
and r9d, 0x1fffff
mov rdx, rbx
mov rax, rbx
imul rax, qword [rsp + 0x48]
imul rdi, r9
mov rbp, r9
add rdi, rax
mov rbx, qword [rsp + 0x80]
mov rax, rbx
mov r9, qword [rsp + 0x98]
imul rax, r9
add rdi, rax
add rdi, r15
add rdi, rcx
mov qword [rsp + 0xe8], rdi
mov rcx, qword [rsp + 0x50]
imul rcx, r13
mov rdi, qword [rsp + 0x78]
mov r8, rdi
imul r8, r14
add r8, rcx
mov rcx, qword [rsp + 0x40]
shr ecx, 2
and ecx, 0x1fffff
mov qword [rsp + 0x40], rcx
imul rcx, qword [rsp + 0xc8]
add r8, rcx
mov rcx, r10
imul rcx, r11
mov r14, qword [rsp + 0x38]
mov r15, r14
mov r10, qword [rsp + 0x28]
imul r15, r10
add r15, rcx
mov rcx, qword [rsp + 0x20]
imul rcx, r12
add r15, rcx
mov rax, qword [rsp + 0x30]
imul rax, r9
imul rsi, rdx
add rsi, rax
mov r11, qword [rsp + 0x68]
mov rdx, r11
imul rdx, rbx
mov rax, qword [rsp + 0x48]
imul rax, rbp
mov qword [rsp + 0xd8], rbp
add rax, rdx
mov rdx, qword [rsp + 0x70]
shr edx, 2
and edx, 0x1fffff
mov qword [rsp + 0x70], rdx
mov r9, qword [rsp + 0x58]
mov rbx, r9
imul rbx, rdx
add rbx, rax
add rbx, rsi
add rbx, r15
add rbx, r8
mov qword [rsp + 0x128], rbx
mov rcx, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x50]
imul rcx, rsi
mov rax, rdi
imul rax, r12
add rax, rcx
mov r8d, dword [rsp + 0x38c]
shr r8, 7
mov qword [rsp + 0xe0], r8
mov rdx, r9
mov rcx, qword [rsp + 0xc8]
imul rdx, rcx
mov qword [rsp + 0x120], rdx
imul rcx, r8
add rax, rcx
mov rcx, qword [rsp + 0x40]
imul rcx, r13
add rax, rcx
mov rcx, r10
mov r10, qword [rsp + 0x60]
imul rcx, r10
mov rdx, r14
imul rdx, qword [rsp + 0x98]
add rdx, rcx
mov r9, qword [rsp + 0x20]
mov rcx, r9
mov rdi, qword [rsp + 0x90]
imul rcx, rdi
add rdx, rcx
mov rcx, r11
mov r15, qword [rsp + 0x30]
imul rcx, r15
mov r14, qword [rsp + 0x88]
mov r8, r14
imul r8, rbp
add r8, rcx
mov ebp, dword [rsp + 0x18c]
shr rbp, 7
mov rbx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x80]
imul rbx, rcx
mov r11, qword [rsp + 0x58]
imul r11, rbp
add r11, rbx
mov rbx, qword [rsp + 0x70]
imul rbx, qword [rsp + 0x48]
add r11, rbx
add r11, r8
add r11, rdx
add r11, rax
mov qword [rsp + 0x58], r11
imul rsi, r12
imul r9, qword [rsp + 0x28]
add r9, rsi
mov rbx, qword [rsp + 0x78]
mov rax, rbx
imul rax, rdi
add r9, rax
mov rax, r10
mov r10, qword [rsp + 0x98]
imul rax, r10
mov r8, qword [rsp + 0x38]
imul r8, qword [rsp + 0x68]
add r8, rax
mov rsi, rcx
mov rax, rcx
mov rcx, qword [rsp + 0xd8]
imul rax, rcx
mov rdi, qword [rsp + 0x48]
imul rdi, rbp
add rdi, rax
mov r11, qword [rsp + 0xb0]
mov rax, r11
imul rax, r15
add rdi, rax
mov rax, r14
mov r14, qword [rsp + 0x70]
imul rax, r14
add rdi, rax
add rdi, r8
add rdi, r9
mov r8, qword [rsp + 0xe0]
imul r13, r8
add rdi, r13
mov qword [rsp + 0x48], rdi
mov r9, qword [rsp + 0x40]
mov rax, r9
mov rdx, qword [rsp + 0xa0]
imul rax, rdx
mov qword [rsp + 0xc8], rax
imul rdx, r8
mov r8, rbx
mov r13, qword [rsp + 0x28]
imul r8, r13
add r8, rdx
mov rax, r9
imul rax, r12
add r8, rax
mov qword [rsp + 0x118], r8
mov r12, qword [rsp + 0x20]
mov rax, r12
mov r9, r10
imul rax, r10
mov rdx, qword [rsp + 0x38]
imul rdx, r11
add rdx, rax
mov r10, qword [rsp + 0x50]
mov rax, r10
imul rax, qword [rsp + 0x90]
add rdx, rax
mov rax, qword [rsp + 0x30]
imul rax, rcx
mov r15, rcx
mov r8, r14
imul r8, rsi
add r8, rax
mov rcx, qword [rsp + 0x68]
mov rax, rcx
mov r14, qword [rsp + 0x60]
imul rax, r14
mov r11, qword [rsp + 0x88]
imul r11, rbp
add r11, rax
mov rax, r11
add rax, r8
add rax, rdx
mov qword [rsp + 0x88], rax
mov rax, r13
imul rax, r10
mov rdx, rbx
imul rdx, r9
mov r13, r9
add rdx, rax
mov rax, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xe0]
imul rax, rsi
add rdx, rax
imul r12, rcx
mov r8, qword [rsp + 0x38]
imul r8, r15
add r8, r12
mov r12, qword [rsp + 0xb0]
mov rax, r12
imul rax, r14
mov r11, qword [rsp + 0x80]
imul r11, rbp
add r11, rax
mov r9, qword [rsp + 0x70]
mov rax, r9
mov r10, qword [rsp + 0x30]
imul rax, r10
add r11, rax
add r11, r8
add r11, rdx
mov qword [rsp + 0x80], r11
mov rdi, qword [rsp + 0x50]
mov rax, rdi
imul rax, r13
mov rdx, rbx
imul rdx, rcx
mov r14, rcx
add rdx, rax
mov r13, qword [rsp + 0x40]
mov rax, r13
mov r8, qword [rsp + 0x90]
imul rax, r8
mov qword [rsp + 0xa0], rax
mov r15, rsi
imul r8, rsi
add rdx, r8
mov rcx, qword [rsp + 0x60]
mov rax, rcx
mov rsi, qword [rsp + 0xd8]
imul rax, rsi
imul r10, rbp
add r10, rax
mov rbx, qword [rsp + 0x20]
mov rax, rbx
mov r8, r12
imul rax, r12
add r10, rax
mov r12, qword [rsp + 0x38]
mov rax, r12
imul rax, r9
add r10, rax
add r10, rdx
mov qword [rsp + 0x30], r10
mov rax, r14
mov r10, r14
imul rax, rdi
mov rdx, rbx
imul rdx, rsi
add rdx, rax
mov r14, qword [rsp + 0x78]
mov rax, r14
imul rax, r8
add rdx, rax
mov rax, r9
imul rax, rcx
mov r11, r12
imul r11, rbp
add r11, rax
add r11, rdx
mov rdx, r13
mov rax, qword [rsp + 0x28]
imul rdx, rax
mov qword [rsp + 0x90], rdx
imul rax, r15
add r11, rax
mov qword [rsp + 0x38], r11
mov rax, r13
mov rbx, r13
mov rdx, qword [rsp + 0x98]
imul rax, rdx
mov qword [rsp + 0xa8], rax
imul rdx, r15
mov r11, r14
imul r11, rsi
add r11, rdx
mov rax, r13
imul rax, r10
add r11, rax
mov rax, r8
imul rax, rdi
imul rcx, rbp
add rcx, rax
mov rdx, qword [rsp + 0x20]
mov rax, rdx
imul rax, r9
add rcx, rax
mov qword [rsp + 0x60], rcx
mov rax, rdi
mov rcx, rsi
imul rax, rsi
imul rdx, rbp
add rdx, rax
mov rax, r14
imul rax, r9
add rdx, rax
mov rax, r10
imul rax, r15
add rdx, rax
mov r12, rdx
mov r10, r13
mov rax, r8
imul r10, r8
imul rax, r15
mov rsi, r14
imul rsi, rbp
add rsi, rax
mov rax, r9
imul rax, rdi
add rsi, rax
mov qword [rsp + 0x78], rsi
imul r13, rcx
imul rcx, r15
imul rdi, rbp
add rdi, rcx
mov qword [rsp + 0x50], rdi
mov r8, rbx
imul r8, r9
imul r9, r15
imul rbx, rbp
add rbx, r9
mov qword [rsp + 0x40], rbx
imul r15, rbp
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x120]
lea rdx, [rax + rcx]
add rax, rcx
add rax, 0x100000
mov ecx, dword [rsp + 0x252]
shr ecx, 5
and ecx, 0x1fffff
add qword [rsp + 0xf0], rcx
mov rcx, rax
and rax, 0xffffffffffe00000
sub rdx, rax
mov qword [rsp + 0xb0], rdx
mov rax, qword [rsp + 0xb8]
shr eax, 2
and eax, 0x1fffff
mov rdx, qword [rsp + 0x100]
lea r9, [rdx + rax]
mov qword [rsp + 0x28], r9
lea rdi, [rax + rdx]
add rdi, 0x100000
mov rax, qword [rsp + 0xd0]
add rax, qword [rsp + 0xf8]
mov qword [rsp + 0xd0], rax
mov eax, dword [rsp + 0x25a]
shr eax, 4
and eax, 0x1fffff
mov r9, qword [rsp + 0x160]
lea rsi, [r9 + rax]
add r9, rax
add r9, 0x100000
mov rdx, r9
shr rdx, 0x15
add rdx, qword [rsp + 0x158]
and r9, 0xffffffffffe00000
sub rsi, r9
mov qword [rsp + 0xb8], rsi
mov r9d, dword [rsp + 0x25f]
shr r9d, 6
and r9d, 0x1fffff
mov rsi, qword [rsp + 0x150]
lea rax, [rsi + r9]
mov qword [rsp + 0xd8], rax
lea rax, [r9 + rsi]
add rax, 0x100000
mov qword [rsp + 0x98], rax
mov rbp, qword [rsp + 0x140]
add rbp, qword [rsp + 0x148]
movzx r9d, byte [rsp + 0x267]
and r9d, 0x1f
shl r9d, 0x10
mov rax, qword [rsp + 0x138]
lea rsi, [rax + r9]
mov qword [rsp + 0xc0], rsi
add rax, r9
add rax, 0x100000
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x130]
add qword [rsp + 0xe8], rax
mov r9, qword [rsp + 0x108]
shr r9d, 2
and r9d, 0x1fffff
mov rax, qword [rsp + 0x128]
lea rbx, [rax + r9]
mov qword [rsp + 0xe0], rbx
add rax, r9
add rax, 0x100000
mov qword [rsp + 0x70], rax
mov r9d, dword [rsp + 0x26c]
shr r9, 7
add qword [rsp + 0x58], r9
mov rax, qword [rsp + 0x118]
add qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x90]
add qword [rsp + 0x30], rax
mov r9, qword [rsp + 0x60]
add r9, r11
mov rax, r12
add r12, r10
lea r11, [r10 + rax]
add r11, 0x100000
mov rsi, qword [rsp + 0x78]
add rsi, r13
mov r14, r11
and r11, 0xffffffffffe00000
sub r12, r11
mov rax, qword [rsp + 0x50]
lea r13, [rax + r8]
add r8, rax
add r8, 0x100000
mov rbx, r8
and r8, 0xffffffffffe00000
sub r13, r8
lea r8, [r15 + 0x100000]
mov qword [rsp + 0x20], r8
and r8, 0xffffffffffe00000
sub r15, r8
shr rcx, 0x15
mov r8, qword [rsp + 0xf0]
lea rax, [r8 + rcx]
add rcx, r8
add rcx, 0x100000
mov r10, rcx
shr r10, 0x15
add r10, qword [rsp + 0x28]
mov r8, rdi
and rdi, 0xffffffffffe00000
sub r10, rdi
mov qword [rsp + 0x78], r10
and rcx, 0xffffffffffe00000
sub rax, rcx
mov qword [rsp + 0x60], rax
shr r8, 0x15
mov rcx, qword [rsp + 0xd0]
lea rax, [rcx + r8]
add rcx, r8
add rcx, 0x100000
mov r8, rcx
shr r8, 0x15
add r8, qword [rsp + 0xb8]
mov qword [rsp + 0x90], r8
and rcx, 0xffffffffffe00000
sub rax, rcx
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x110]
shr ecx, 1
and ecx, 0x1fffff
lea rax, [rdx + rcx]
mov qword [rsp + 0xd0], rax
lea rax, [rcx + rdx]
add rax, 0x100000
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x98]
shr rax, 0x15
mov rcx, rbp
add rbp, rax
add rax, rcx
add rax, 0x100000
mov qword [rsp + 0x108], rax
shr rax, 0x15
add rax, qword [rsp + 0xc0]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x68]
shr rax, 0x15
mov rcx, qword [rsp + 0xe8]
lea rdx, [rcx + rax]
mov qword [rsp + 0xc0], rdx
add rax, rcx
add rax, 0x100000
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x70]
shr rax, 0x15
mov rcx, qword [rsp + 0x58]
lea rdx, [rcx + rax]
mov qword [rsp + 0xf0], rdx
add rax, rcx
add rax, 0x100000
mov qword [rsp + 0xe8], rax
mov r10, qword [rsp + 0x38]
mov rdi, qword [rsp + 0xa8]
lea rax, [rdi + r10]
add rax, 0x100000
mov rcx, rax
shr rcx, 0x15
lea rdx, [r9 + rcx]
add rcx, r9
add rcx, 0x100000
mov r8, rcx
shr r8, 0x15
add r8, r12
and rcx, 0xffffffffffe00000
sub rdx, rcx
mov qword [rsp + 0x58], rdx
shr r14, 0x15
lea rcx, [rsi + r14]
lea rdx, [r14 + rsi]
add rdx, 0x100000
mov r11, rdx
shr r11, 0x15
add r11, r13
and rdx, 0xffffffffffe00000
sub rcx, rdx
shr rbx, 0x15
mov rdx, qword [rsp + 0x40]
lea r14, [rdx + rbx]
add rdx, rbx
add rdx, 0x100000
mov rsi, rdx
shr rsi, 0x15
add rsi, r15
and rdx, 0xffffffffffe00000
sub r14, rdx
mov rdx, qword [rsp + 0x20]
shr rdx, 0x15
imul r9, rdx, 0xfffffffffff59083
add r9, rdi
add r9, r10
and rax, 0xffffffffffe00000
sub r9, rax
mov qword [rsp + 0x40], r9
imul rax, rdx, 0xa2c13
mov r10, rdx
mov qword [rsp + 0x20], rdx
imul rdx, rsi, 0x72d18
add rdx, rax
imul rax, rsi, 0xa2c13
imul r9, r14, 0x72d18
add r9, rax
imul r15, r14, 0x9fb67
add r15, rdx
imul rdx, rsi, 0xfffffffffff0c653
imul rax, r14, 0x215d1
mov rdi, r14
mov qword [rsp + 0xf8], r14
add rax, rdx
mov qword [rsp + 0xa8], rax
imul rdx, r10, 0xfffffffffff0c653
mov r10, qword [rsp + 0xa0]
add rdx, r10
mov rax, qword [rsp + 0x80]
add r10, rax
add r10, 0x100000
add rdx, rax
mov qword [rsp + 0x80], r10
and r10, 0xffffffffffe00000
sub rdx, r10
mov r13, qword [rsp + 0x48]
mov r14, qword [rsp + 0xc8]
lea r12, [r14 + r13]
add r12, 0x100000
mov r10, r12
shr r10, 0x15
mov qword [rsp + 0xa0], r10
mov rax, qword [rsp + 0x88]
add r10, rax
add r10, 0x100000
mov qword [rsp + 0x100], r10
shr r10, 0x15
add rdx, r10
imul r10, rsi, 0x215d1
add rdx, r10
imul r10, rdi, 0xa2c13
imul rdi, r11, 0x72d18
add rdi, r10
imul rbx, r11, 0x9fb67
add rbx, r9
imul rax, r11, 0xfffffffffff0c653
add rax, r15
imul r9, rcx, 0xa2c13
add r9, rbp
imul r10, r11, 0xa2c13
imul rbp, rcx, 0x72d18
add rbp, r10
imul r10, rcx, 0x9fb67
add r10, rdi
imul r15, rcx, 0xfffffffffff0c653
add r15, rbx
imul rbx, rcx, 0x215d1
add rbx, rax
imul rax, qword [rsp + 0x20], 0x72d18
add rax, r14
add rax, r13
and r12, 0xffffffffffe00000
sub rax, r12
imul rdi, rsi, 0x9fb67
add rax, rdi
mov r14, qword [rsp + 0xf8]
imul rdi, r14, 0xfffffffffff0c653
add rax, rdi
imul rdi, r11, 0x215d1
add rax, rdi
imul rcx, rcx, 0xfffffffffff59083
add rax, rcx
imul rcx, r8, 0xa2c13
add rcx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0x98]
and rdi, 0xffffffffffe00000
sub rcx, rdi
imul rdi, r8, 0x72d18
add rdi, r9
mov r9, qword [rsp + 0x108]
and r9, 0xffffffffffe00000
sub rdi, r9
mov qword [rsp + 0x38], rdi
imul rdi, r8, 0x9fb67
add rdi, rbp
add rdi, qword [rsp + 0xb8]
mov r9, qword [rsp + 0x68]
and r9, 0xffffffffffe00000
sub rdi, r9
mov qword [rsp + 0x48], rdi
imul rdi, r8, 0xfffffffffff0c653
add rdi, qword [rsp + 0xc0]
add rdi, r10
mov r10, qword [rsp + 0x110]
mov r9, r10
and r10, 0xffffffffffe00000
sub rdi, r10
shr r9, 0x15
imul r10, r8, 0x215d1
add r10, r9
add r10, r15
add r10, qword [rsp + 0xe0]
mov r9, qword [rsp + 0x70]
and r9, 0xffffffffffe00000
sub r10, r9
imul r8, r8, 0xfffffffffff59083
add r8, qword [rsp + 0xf0]
add r8, rbx
mov rbx, qword [rsp + 0xe8]
mov r9, rbx
and rbx, 0xffffffffffe00000
sub r8, rbx
mov rbx, qword [rsp + 0x28]
shr rbx, 0x15
lea r15, [rcx + rbx]
mov qword [rsp + 0x70], r15
add rcx, rbx
add rcx, 0x100000
mov qword [rsp + 0x68], rcx
shr r9, 0x15
lea r15, [rax + r9]
lea rcx, [r9 + rax]
add rcx, 0x100000
mov rbx, qword [rsp + 0x20]
imul rax, rbx, 0x9fb67
add rax, qword [rsp + 0x88]
add rax, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x100]
and r9, 0xffffffffffe00000
sub rax, r9
add rax, qword [rsp + 0xa8]
imul r9, r11, 0xfffffffffff59083
add rax, r9
mov r12, rcx
and rcx, 0xffffffffffe00000
sub r15, rcx
imul rcx, r14, 0xfffffffffff59083
lea r11, [rdx + rcx]
add rdx, rcx
add rdx, 0x100000
mov r9, qword [rsp + 0x80]
shr r9, 0x15
imul r14, rbx, 0x215d1
mov rcx, qword [rsp + 0x30]
add r14, rcx
add rcx, r9
add rcx, 0x100000
add r14, r9
mov rbx, rcx
and rcx, 0xffffffffffe00000
sub r14, rcx
imul rcx, rsi, 0xfffffffffff59083
add r14, rcx
mov rcx, rdx
and rdx, 0xffffffffffe00000
sub r11, rdx
shr rbx, 0x15
mov rdx, qword [rsp + 0x40]
lea r9, [rdx + rbx]
add rdx, rbx
add rdx, 0x100000
mov rbp, rdx
sar rbp, 0x15
add rbp, qword [rsp + 0x58]
and rdx, 0xffffffffffe00000
sub r9, rdx
mov rdx, qword [rsp + 0x48]
lea r13, [rdx + 0x100000]
mov rdx, r13
sar rdx, 0x15
lea rsi, [rdi + rdx]
mov qword [rsp + 0x30], rsi
add rdi, rdx
add rdi, 0x100000
lea rdx, [r10 + 0x100000]
mov rsi, rdx
sar rsi, 0x15
lea rbx, [r8 + rsi]
add r8, rsi
add r8, 0x100000
mov rsi, r8
sar rsi, 0x15
add rsi, r15
and r8, 0xffffffffffe00000
sub rbx, r8
mov qword [rsp + 0x20], rbx
sar r12, 0x15
lea r8, [rax + r12]
add rax, r12
add rax, 0x100000
mov rbx, rax
sar rbx, 0x15
add rbx, r11
and rax, 0xffffffffffe00000
sub r8, rax
sar rcx, 0x15
lea r15, [r14 + rcx]
lea rax, [rcx + r14]
add rax, 0x100000
mov r14, rax
sar r14, 0x15
add r14, r9
and rax, 0xffffffffffe00000
sub r15, rax
imul rax, rbp, 0xa2c13
add rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x28]
and rcx, 0xffffffffffe00000
sub rax, rcx
imul rcx, rbp, 0x72d18
add rcx, qword [rsp + 0x70]
mov r9, qword [rsp + 0x68]
mov r12, r9
and r9, 0xffffffffffe00000
sub rcx, r9
imul r9, rbp, 0x215d1
add r9, qword [rsp + 0x30]
imul r11, rbp, 0xfffffffffff59083
add r11, r10
mov r10, rdi
sar r10, 0x15
add r11, r10
and rdx, 0xffffffffffe00000
sub r11, rdx
mov qword [rsp + 0x30], r11
imul rdx, r14, 0xa2c13
add rdx, qword [rsp + 0x90]
imul r10, r14, 0x72d18
add r10, rax
imul r11, r14, 0x9fb67
add r11, rcx
imul rax, r14, 0xfffffffffff59083
add rax, r9
and rdi, 0xffffffffffe00000
sub rax, rdi
mov qword [rsp + 0x28], rax
imul r9, r15, 0xa2c13
add r9, qword [rsp + 0x50]
imul rdi, r15, 0x72d18
add rdi, rdx
imul rax, r15, 0x9fb67
add rax, r10
imul r10, r15, 0xfffffffffff0c653
mov qword [rsp + 0x58], r15
add r10, r11
sar r12, 0x15
mov qword [rsp + 0x80], r12
mov rcx, qword [rsp + 0x38]
add rcx, r12
add rcx, 0x100000
mov qword [rsp + 0x40], rcx
sar rcx, 0x15
imul rdx, r15, 0xfffffffffff59083
add rdx, rcx
imul r15, rbp, 0xfffffffffff0c653
add r15, qword [rsp + 0x48]
imul rcx, r14, 0x215d1
add r15, rcx
add r15, rdx
and r13, 0xffffffffffe00000
sub r15, r13
imul rcx, rbx, 0xa2c13
add rcx, qword [rsp + 0x78]
imul r11, rbx, 0x72d18
add r11, r9
imul rdx, rbx, 0x9fb67
add rdx, rdi
imul r13, rbx, 0xfffffffffff0c653
add r13, rax
imul rdi, r8, 0xa2c13
add rdi, qword [rsp + 0x60]
imul r9, r8, 0x9fb67
add r9, r11
imul r12, r8, 0x215d1
mov r11, r8
add r12, r13
imul r13, rbx, 0x215d1
add r13, r10
imul r8, rsi, 0x9fb67
add r8, rcx
imul r10, rsi, 0x215d1
add r10, rdx
imul rcx, rsi, 0xa2c13
mov rdx, qword [rsp + 0xb0]
lea rax, [rcx + rdx]
add rcx, rdx
add rcx, 0x100000
imul rdx, rsi, 0x72d18
add rdx, rdi
mov qword [rsp + 0x78], rdx
mov rdx, rcx
and rcx, 0xffffffffffe00000
sub rax, rcx
mov qword [rsp + 0x60], rax
imul rcx, r11, 0x72d18
lea rax, [r8 + rcx]
mov qword [rsp + 0x88], rax
lea rdi, [rcx + r8]
add rdi, 0x100000
imul rax, rsi, 0xfffffffffff0c653
add rax, r9
imul rcx, r11, 0xfffffffffff0c653
lea r9, [r10 + rcx]
mov qword [rsp + 0x48], r9
add rcx, r10
add rcx, 0x100000
mov qword [rsp + 0x50], rcx
imul rsi, rsi, 0xfffffffffff59083
add rsi, r12
imul rcx, r11, 0xfffffffffff59083
lea r11, [rcx + r13]
add rcx, r13
add rcx, 0x100000
imul r9, rbp, 0x9fb67
add r9, qword [rsp + 0x38]
add r9, qword [rsp + 0x80]
imul r10, r14, 0xfffffffffff0c653
add r9, r10
imul r10, qword [rsp + 0x58], 0x215d1
add r9, r10
mov r8, qword [rsp + 0x40]
and r8, 0xffffffffffe00000
sub r9, r8
imul r8, rbx, 0xfffffffffff59083
add r9, r8
mov rbp, rcx
and rcx, 0xffffffffffe00000
sub r11, rcx
lea rcx, [r15 + 0x100000]
mov r8, rcx
and rcx, 0xffffffffffe00000
sub r15, rcx
sar rdx, 0x15
mov rcx, qword [rsp + 0x78]
lea rbx, [rcx + rdx]
lea r13, [rdx + rcx]
add r13, 0x100000
mov rcx, rdi
sar rcx, 0x15
lea r12, [rax + rcx]
lea r10, [rcx + rax]
add r10, 0x100000
mov rcx, qword [rsp + 0x50]
mov rax, rcx
sar rax, 0x15
lea rdx, [rsi + rax]
mov qword [rsp + 0x58], rdx
lea rdx, [rax + rsi]
add rdx, 0x100000
mov r14, rdx
sar r14, 0x15
add r14, r11
sar rbp, 0x15
lea r11, [r9 + rbp]
lea rax, [r9 + rbp]
add rax, 0x100000
mov rsi, rax
sar rsi, 0x15
add rsi, r15
and rax, 0xffffffffffe00000
sub r11, rax
mov qword [rsp + 0x40], r11
sar r8, 0x15
mov rax, qword [rsp + 0x28]
lea r9, [rax + r8]
add rax, r8
add rax, 0x100000
mov qword [rsp + 0x38], rax
and rax, 0xffffffffffe00000
sub r9, rax
mov qword [rsp + 0x28], r9
mov rax, qword [rsp + 0x30]
lea r9, [rax + 0x100000]
mov rax, r9
sar rax, 0x15
mov r8, qword [rsp + 0x20]
lea r11, [r8 + rax]
add rax, r8
add rax, 0x100000
mov rbp, rax
and rax, 0xffffffffffe00000
sub r11, rax
mov qword [rsp + 0x20], r11
sar rbp, 0x15
imul r8, rbp, 0xa2c13
add r8, qword [rsp + 0x60]
imul rax, rbp, 0x72d18
add rax, rbx
mov r15, r13
and r13, 0xffffffffffe00000
sub rax, r13
imul r11, rbp, 0x9fb67
add r11, qword [rsp + 0x88]
and rdi, 0xffffffffffe00000
sub r11, rdi
sar r15, 0x15
add r11, r15
imul r15, rbp, 0xfffffffffff0c653
add r15, r12
mov rdi, r10
and r10, 0xffffffffffe00000
sub r15, r10
imul rbx, rbp, 0x215d1
add rbx, qword [rsp + 0x48]
and rcx, 0xffffffffffe00000
sub rbx, rcx
sar rdi, 0x15
add rbx, rdi
imul rdi, rbp, 0xfffffffffff59083
add rdi, qword [rsp + 0x58]
and rdx, 0xffffffffffe00000
sub rdi, rdx
mov rdx, r8
sar rdx, 0x15
add rdx, rax
mov r10, rdx
sar r10, 0x15
add r10, r11
mov r11, r10
sar r11, 0x15
add r11, r15
mov r12, r11
sar r12, 0x15
add r12, rbx
mov rbp, r12
sar rbp, 0x15
add rbp, rdi
mov rbx, rbp
sar rbx, 0x15
add rbx, r14
mov r15, rbx
sar r15, 0x15
add r15, qword [rsp + 0x40]
mov r14, r15
sar r14, 0x15
add r14, rsi
mov r13, r14
sar r13, 0x15
add r13, qword [rsp + 0x28]
and r9, 0xffffffffffe00000
mov rcx, qword [rsp + 0x38]
sar rcx, 0x15
and r8d, 0x1fffff
and edx, 0x1fffff
and r10d, 0x1fffff
and r11d, 0x1fffff
and r12d, 0x1fffff
mov rsi, qword [rsp + 0x30]
sub rsi, r9
mov rax, r13
sar rax, 0x15
add rsi, rcx
add rsi, rax
mov rcx, rsi
sar rcx, 0x15
add rcx, qword [rsp + 0x20]
mov r9, rcx
sar r9, 0x15
imul rax, r9, 0xa2c13
add rax, r8
imul r8, r9, 0x72d18
add r8, rdx
imul rdx, r9, 0x9fb67
add rdx, r10
imul r10, r9, 0xfffffffffff0c653
add r10, r11
imul r11, r9, 0x215d1
add r11, r12
and ebp, 0x1fffff
and ebx, 0x1fffff
and r15d, 0x1fffff
and r14d, 0x1fffff
and r13d, 0x1fffff
and esi, 0x1fffff
mov qword [rsp + 0x30], rsi
and ecx, 0x1fffff
imul r9, r9, 0xfffffffffff59083
add r9, rbp
mov rbp, rax
sar rbp, 0x15
add rbp, r8
mov r12, rbp
sar r12, 0x15
add r12, rdx
mov rdi, r12
sar rdi, 0x15
add rdi, r10
mov rsi, rdi
sar rsi, 0x15
add rsi, r11
mov r11, rsi
sar r11, 0x15
add r11, r9
mov r10, r11
sar r10, 0x15
add r10, rbx
mov r9, r10
sar r9, 0x15
add r9, r15
mov rbx, r9
sar rbx, 0x15
add rbx, r14
mov r8, rbx
sar r8, 0x15
add r8, r13
mov rdx, r8
sar rdx, 0x15
add rdx, qword [rsp + 0x30]
mov r14, rdx
sar r14, 0x15
add r14, rcx
mov rcx, qword [rsp + 0x168]
mov byte [rcx + 0x20], al
mov byte [rcx + 0x21], ah
mov r15, rcx
shr eax, 0x10
and eax, 0x1f
mov ecx, ebp
shl ecx, 5
or ecx, eax
mov byte [r15 + 0x22], cl
mov rax, rbp
shr rax, 3
mov byte [r15 + 0x23], al
mov rax, rbp
shr rax, 0xb
mov byte [r15 + 0x24], al
shr ebp, 0x13
and ebp, 3
lea eax, [rbp + r12*4]
mov rcx, r15
mov byte [r15 + 0x25], al
mov rax, r12
shr rax, 6
mov byte [r15 + 0x26], al
mov eax, edi
shl eax, 7
shr r12d, 0xe
and r12d, 0x7f
or r12d, eax
mov byte [r15 + 0x27], r12b
mov rax, rdi
shr rax, 1
mov byte [r15 + 0x28], al
mov rax, rdi
shr rax, 9
mov byte [r15 + 0x29], al
mov eax, esi
shl eax, 4
shr edi, 0x11
and edi, 0xf
or edi, eax
mov byte [r15 + 0x2a], dil
mov rax, rsi
shr rax, 4
mov byte [r15 + 0x2b], al
mov rax, rsi
shr rax, 0xc
mov byte [r15 + 0x2c], al
shr esi, 0x14
and esi, 1
lea eax, [rsi + r11*2]
mov byte [r15 + 0x2d], al
mov rax, r11
shr rax, 7
mov byte [r15 + 0x2e], al
mov eax, r10d
shl eax, 6
shr r11d, 0xf
and r11d, 0x3f
or r11d, eax
mov byte [r15 + 0x2f], r11b
mov rax, r10
shr rax, 2
mov byte [r15 + 0x30], al
mov rax, r10
shr rax, 0xa
mov byte [r15 + 0x31], al
shr r10d, 0x12
and r10d, 7
lea eax, [r10 + r9*8]
mov byte [r15 + 0x32], al
mov rax, r9
shr rax, 5
mov byte [r15 + 0x33], al
shr r9, 0xd
mov byte [r15 + 0x34], r9b
mov byte [r15 + 0x35], bl
mov byte [rcx + 0x36], bh
shr ebx, 0x10
and ebx, 0x1f
mov eax, r8d
shl eax, 5
or eax, ebx
mov byte [r15 + 0x37], al
mov rax, r8
shr rax, 3
mov byte [r15 + 0x38], al
mov rax, r8
shr rax, 0xb
mov byte [r15 + 0x39], al
shr r8d, 0x13
and r8d, 3
lea eax, [r8 + rdx*4]
mov byte [r15 + 0x3a], al
mov rax, rdx
shr rax, 6
mov byte [r15 + 0x3b], al
mov eax, r14d
shl eax, 7
shr edx, 0xe
and edx, 0x7f
or edx, eax
mov byte [r15 + 0x3c], dl
mov rax, r14
shr rax, 1
mov byte [r15 + 0x3d], al
mov rax, r14
shr rax, 9
mov byte [r15 + 0x3e], al
shr r14, 0x11
mov byte [r15 + 0x3f], r14b
mov rcx, qword [rsp + 0x420]
xor rcx, rsp
call fcn.14025dfe0
mov eax, 1
add rsp, 0x428
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret