Function at 0x14003e050
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x438
mov r14, r9
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x14039de68]
xor rax, rsp
mov qword [rsp + 0x430], rax
lea r8, [rsp + 0x380]
mov edx, 0x20
mov rcx, r9
call fcn.140068f30
and byte [rsp + 0x380], 0xf8
movzx eax, byte [rsp + 0x39f]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0x39f], al
lea r15, [rsp + 0x2a8]
mov rcx, r15
call fcn.14006a5d0
lea rdx, [rsp + 0x3a0]
mov r8d, 0x20
mov rcx, r15
call fcn.14006a660
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.14006a660
lea r12, [rsp + 0x260]
mov rcx, r12
mov rdx, r15
call fcn.14006a770
mov rcx, r12
call fcn.14003d310
lea r8, [0x1402a6270]
lea r13, [rsp + 0x1c0]
mov rcx, r13
mov rdx, r12
call fcn.14003c410
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x1a0], rax
movups xmm0, xmmword [rsp + 0x210]
movups xmm1, xmmword [rsp + 0x220]
movaps xmmword [rsp + 0x190], xmm1
movaps xmmword [rsp + 0x180], xmm0
lea r12, [rsp + 0x3e8]
lea rdx, [rsp + 0x180]
mov rcx, r12
call fcn.140042f70
lea rbp, [rsp + 0x180]
mov rcx, rbp
mov rdx, r13
mov r8, r12
call fcn.1400459c0
lea rdx, [rsp + 0x1e8]
lea r13, [rsp + 0x3c0]
mov rcx, r13
mov r8, r12
call fcn.1400459c0
mov qword [rsp + 0x178], rsi
mov rcx, rsi
mov rdx, r13
call fcn.140038610
lea rcx, [rsp + 0x410]
mov rdx, rbp
call fcn.140038610
movzx eax, byte [rsp + 0x410]
shl al, 7
xor byte [rsi + 0x1f], al
mov rcx, r15
call fcn.14006a5d0
mov r8d, 0x20
mov rcx, r15
mov rdx, rsi
call fcn.14006a660
add r14, 0x20
mov r8d, 0x20
mov rcx, r15
mov rdx, r14
call fcn.14006a660
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call fcn.14006a660
lea rdi, [rsp + 0x180]
mov rcx, rdi
mov rdx, r15
call fcn.14006a770
mov rcx, rdi
call fcn.14003d310
movzx eax, word [rsp + 0x180]
movzx ebp, byte [rsp + 0x182]
and ebp, 0x1f
shl ebp, 0x10
or rbp, rax
movzx eax, word [rsp + 0x185]
movzx r11d, byte [rsp + 0x187]
shl r11d, 0x10
or r11d, eax
movzx eax, word [rsp + 0x18d]
movzx ecx, byte [rsp + 0x18f]
shl ecx, 0x10
or ecx, eax
mov qword [rsp + 0xb0], rcx
movzx eax, word [rsp + 0x192]
movzx ecx, byte [rsp + 0x194]
shl ecx, 0x10
or ecx, eax
mov qword [rsp + 0xa0], rcx
movzx eax, word [rsp + 0x195]
movzx ecx, byte [rsp + 0x197]
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov qword [rsp + 0x98], rcx
movzx eax, word [rsp + 0x19a]
movzx ecx, byte [rsp + 0x19c]
shl ecx, 0x10
or ecx, eax
mov qword [rsp + 0x30], rcx
movzx eax, word [rsp + 0x380]
movzx ecx, byte [rsp + 0x382]
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov r8, rcx
movzx eax, word [rsp + 0x385]
movzx edx, byte [rsp + 0x387]
shl edx, 0x10
or edx, eax
movzx eax, word [rsp + 0x38d]
movzx esi, byte [rsp + 0x38f]
shl esi, 0x10
or esi, eax
movzx eax, word [rsp + 0x392]
movzx ecx, byte [rsp + 0x394]
shl ecx, 0x10
or ecx, eax
mov qword [rsp + 0x50], rcx
movzx eax, word [rsp + 0x395]
movzx ecx, byte [rsp + 0x397]
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov qword [rsp + 0x40], rcx
movzx eax, word [rsp + 0x39a]
movzx ecx, byte [rsp + 0x39c]
shl ecx, 0x10
or ecx, eax
mov qword [rsp + 0x60], rcx
movzx eax, word [rsp + 0x260]
movzx ecx, byte [rsp + 0x262]
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov qword [rsp + 0x110], rcx
movzx ecx, byte [rsp + 0x267]
shl ecx, 0x10
movzx eax, word [rsp + 0x265]
or ecx, eax
mov qword [rsp + 0x118], rcx
movzx ecx, byte [rsp + 0x26f]
shl ecx, 0x10
movzx eax, word [rsp + 0x26d]
or ecx, eax
mov qword [rsp + 0x120], rcx
movzx ecx, byte [rsp + 0x274]
shl ecx, 0x10
movzx eax, word [rsp + 0x272]
or ecx, eax
mov qword [rsp + 0x68], rcx
movzx r9d, byte [rsp + 0x27c]
shl r9d, 0x10
movzx eax, word [rsp + 0x27a]
or r9d, eax
mov qword [rsp + 0x108], r9
mov eax, dword [rsp + 0x182]
shr eax, 5
and eax, 0x1fffff
mov rcx, rax
mov eax, dword [rsp + 0x382]
shr eax, 5
and eax, 0x1fffff
mov r10, rax
mov rax, rbp
imul rax, r10
mov r9, r8
imul r9, rcx
add r9, rax
mov qword [rsp + 0x100], r9
shr r11d, 2
and r11d, 0x1fffff
mov rax, r10
mov rbx, r10
imul rax, rcx
mov r9, r8
mov r15, r8
imul r9, r11
add r9, rax
mov r8, rdx
shr r8d, 2
and r8d, 0x1fffff
mov rax, r8
imul rax, rbp
add r9, rax
mov qword [rsp + 0xf8], r9
mov eax, dword [rsp + 0x267]
shr eax, 7
and eax, 0x1fffff
mov rdx, r8
mov r9, rcx
imul rdx, rcx
add rdx, rax
mov qword [rsp + 0xf0], rdx
mov eax, dword [rsp + 0x187]
shr eax, 7
and eax, 0x1fffff
mov rdi, rax
mov ecx, dword [rsp + 0x387]
shr ecx, 7
and ecx, 0x1fffff
mov rax, rbp
imul rax, rcx
mov rdx, r15
imul rdx, rdi
mov r14, rdi
add rdx, rax
mov rax, r11
imul rax, r10
add rdx, rax
mov qword [rsp + 0xe0], rdx
mov rax, rcx
mov r12, rcx
mov qword [rsp + 0x78], rcx
imul rax, r9
mov rcx, r9
mov rdx, r10
mov qword [rsp + 0xa8], r10
imul rdx, rdi
add rdx, rax
mov eax, dword [rsp + 0x18a]
shr eax, 4
and eax, 0x1fffff
mov r9, r15
imul r9, rax
mov r13, rax
add r9, rdx
mov edi, dword [rsp + 0x38a]
shr edi, 4
and edi, 0x1fffff
mov rax, rbp
imul rax, rdi
add r9, rax
mov r10, r8
mov rax, r8
imul rax, r11
add r9, rax
mov qword [rsp + 0xe8], r9
mov rax, rdi
mov qword [rsp + 0x48], rdi
imul rax, rcx
mov qword [rsp + 0xd8], rcx
mov rdx, r11
imul rdx, r12
add rdx, rax
shr esi, 1
and esi, 0x1fffff
mov rax, rsi
mov r12, rsi
imul rax, rbp
mov r9, r8
mov qword [rsp + 0x28], r8
imul r9, r14
mov qword [rsp + 0xc8], r14
add r9, rax
mov rsi, qword [rsp + 0xb0]
shr esi, 1
and esi, 0x1fffff
mov rax, rbx
mov qword [rsp + 0x80], r13
imul rax, r13
mov r8, r15
imul r8, rsi
mov rbx, rsi
add r8, rax
add r8, rdx
add r8, r9
mov qword [rsp + 0x170], r8
mov edx, dword [rsp + 0x38f]
shr edx, 6
and edx, 0x1fffff
mov qword [rsp + 0x58], rdx
mov rax, rbp
imul rax, rdx
mov rdx, r12
mov r9, r12
imul rdx, rcx
add rdx, rax
mov rcx, r11
mov qword [rsp + 0x90], r11
mov rax, r11
imul rax, rdi
mov rsi, r10
imul rsi, r13
add rsi, rax
mov r12d, dword [rsp + 0x18f]
shr r12d, 6
and r12d, 0x1fffff
mov r10, qword [rsp + 0x78]
mov rax, r10
imul rax, r14
mov r8, r15
mov r13, r15
mov qword [rsp + 0x70], r15
imul r8, r12
mov r14, r12
add r8, rax
mov r11, rbx
mov qword [rsp + 0xb0], rbx
mov rax, rbx
mov rbx, qword [rsp + 0xa8]
imul rax, rbx
add r8, rax
add r8, rsi
add r8, rdx
mov qword [rsp + 0x168], r8
mov rax, qword [rsp + 0x50]
shr eax, 3
mov qword [rsp + 0x50], rax
mov r12, rbp
imul rax, rbp
mov rsi, r9
mov qword [rsp + 0x38], r9
mov rdx, r9
imul rdx, rcx
add rdx, rax
mov rax, qword [rsp + 0x68]
shr eax, 3
add rdx, rax
mov qword [rsp + 0x160], rdx
mov r9, qword [rsp + 0x58]
mov rax, r9
mov rdi, qword [rsp + 0xd8]
imul rax, rdi
mov r15, qword [rsp + 0x28]
mov rcx, r15
imul rcx, r11
add rcx, rax
mov rax, r10
mov r10, qword [rsp + 0x80]
imul rax, r10
mov qword [rsp + 0x88], r14
imul rbx, r14
add rbx, rax
mov rbp, qword [rsp + 0xa0]
shr ebp, 3
imul r13, rbp
mov qword [rsp + 0xa0], rbp
add r13, rbx
mov r11, qword [rsp + 0x48]
mov rax, r11
mov rbx, qword [rsp + 0xc8]
imul rax, rbx
add r13, rax
add r13, rcx
mov qword [rsp + 0x158], r13
mov r8, qword [rsp + 0x40]
mov rax, r8
imul rax, r12
mov r13, r12
mov qword [rsp + 0xc0], r12
movzx ecx, word [rsp + 0x275]
add rax, rcx
mov rcx, qword [rsp + 0x90]
imul rcx, r9
mov rdx, rsi
mov r9, rbx
imul rdx, rbx
add rdx, rcx
mov r12, qword [rsp + 0x50]
mov rcx, r12
imul rcx, rdi
add rdx, rcx
mov rcx, r11
imul rcx, r10
mov rsi, r15
imul rsi, r14
add rsi, rcx
mov rcx, rbp
mov rbx, qword [rsp + 0xa8]
imul rcx, rbx
mov r15, qword [rsp + 0x70]
mov rbp, r15
mov r10, qword [rsp + 0x98]
imul rbp, r10
add rbp, rcx
mov r11, qword [rsp + 0xb0]
mov rcx, r11
mov r14, qword [rsp + 0x78]
imul rcx, r14
add rbp, rcx
add rbp, rsi
add rbp, rdx
add rbp, rax
mov qword [rsp + 0x150], rbp
mov ecx, dword [rsp + 0x397]
shr ecx, 5
and ecx, 0x1fffff
mov qword [rsp + 0x68], rcx
imul r13, rcx
imul r8, rdi
add r8, r13
mov eax, dword [rsp + 0x277]
shr eax, 5
and eax, 0x1fffff
add r8, rax
mov qword [rsp + 0x148], r8
mov rcx, qword [rsp + 0x58]
imul rcx, r9
mov rax, qword [rsp + 0x38]
imul rax, qword [rsp + 0x80]
add rax, rcx
mov rcx, r12
mov r9, qword [rsp + 0x90]
imul rcx, r9
add rax, rcx
mov rcx, r11
mov r12, r11
imul rcx, qword [rsp + 0x48]
mov r11, qword [rsp + 0x28]
mov rbp, r11
mov rsi, qword [rsp + 0xa0]
imul rbp, rsi
add rbp, rcx
mov r8d, dword [rsp + 0x197]
shr r8d, 5
and r8d, 0x1fffff
imul r10, rbx
imul r15, r8
mov rbx, r8
add r15, r10
mov r10, r14
mov rcx, r14
mov r13, qword [rsp + 0x88]
imul rcx, r13
add r15, rcx
add r15, rbp
add r15, rax
mov qword [rsp + 0x140], r15
mov r14, qword [rsp + 0x68]
mov rcx, r14
imul rcx, rdi
mov r8, qword [rsp + 0x40]
imul r8, r9
add r8, rcx
mov rcx, qword [rsp + 0x60]
shr ecx, 2
and ecx, 0x1fffff
mov qword [rsp + 0x60], rcx
imul rcx, qword [rsp + 0xc0]
add r8, rcx
mov rdi, qword [rsp + 0x58]
mov rbp, rdi
mov r15, qword [rsp + 0x80]
imul rbp, r15
mov r9, qword [rsp + 0x38]
mov rcx, r9
imul rcx, r12
add rcx, rbp
mov rbp, qword [rsp + 0x50]
mov r12, qword [rsp + 0xc8]
imul rbp, r12
add rcx, rbp
mov rbp, qword [rsp + 0x48]
imul rbp, r13
mov rdx, r11
mov r13, qword [rsp + 0x98]
imul rdx, r13
add rdx, rbp
imul rsi, r10
mov rax, qword [rsp + 0xa8]
imul rax, rbx
mov qword [rsp + 0xb8], rbx
add rax, rsi
mov rsi, qword [rsp + 0x30]
shr esi, 2
and esi, 0x1fffff
mov qword [rsp + 0x30], rsi
mov r10, qword [rsp + 0x70]
mov r11, r10
imul r11, rsi
add r11, rax
add r11, rdx
add r11, rcx
add r11, r8
mov qword [rsp + 0x138], r11
mov rax, qword [rsp + 0x90]
imul rax, r14
mov rcx, qword [rsp + 0x40]
imul rcx, r12
add rcx, rax
mov eax, dword [rsp + 0x39c]
shr eax, 7
mov qword [rsp + 0xd0], rax
mov r8, r10
mov r14, r10
mov rdx, qword [rsp + 0xc0]
imul r8, rdx
mov qword [rsp + 0x130], r8
imul rdx, rax
add rcx, rdx
mov rax, qword [rsp + 0x60]
imul rax, qword [rsp + 0xd8]
add rcx, rax
mov r11, qword [rsp + 0xb0]
mov rdx, r11
imul rdx, rdi
mov rax, r9
mov rsi, qword [rsp + 0x88]
imul rax, rsi
add rax, rdx
mov r9, qword [rsp + 0x50]
mov rdx, r9
imul rdx, r15
add rax, rdx
mov r10, qword [rsp + 0xa0]
mov rdx, r10
mov r15, qword [rsp + 0x48]
imul rdx, r15
mov r8, qword [rsp + 0x28]
imul r8, rbx
add r8, rdx
mov ebp, dword [rsp + 0x19c]
shr ebp, 7
mov rdx, r13
mov r13, qword [rsp + 0x78]
imul rdx, r13
imul r14, rbp
add r14, rdx
mov rdx, qword [rsp + 0x30]
mov rbx, qword [rsp + 0xa8]
imul rdx, rbx
add r14, rdx
mov rdi, r14
add rdi, r8
add rdi, rax
add rdi, rcx
mov qword [rsp + 0x70], rdi
mov rcx, qword [rsp + 0x68]
mov r14, r12
imul rcx, r12
mov rax, r9
mov r9, r11
imul rax, r11
add rax, rcx
mov rcx, qword [rsp + 0x40]
mov r12, qword [rsp + 0x80]
imul rcx, r12
add rax, rcx
mov rcx, qword [rsp + 0x58]
imul rcx, rsi
mov r11, qword [rsp + 0x38]
mov rdx, r11
imul rdx, r10
add rdx, rcx
mov rcx, r13
mov r13, qword [rsp + 0xb8]
imul rcx, r13
imul rbx, rbp
add rbx, rcx
mov rdi, qword [rsp + 0x98]
mov rcx, rdi
imul rcx, r15
add rbx, rcx
mov r8, qword [rsp + 0x28]
mov rcx, r8
mov r15, qword [rsp + 0x30]
imul rcx, r15
add rbx, rcx
add rbx, rdx
add rbx, rax
mov rdx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xd8]
imul rax, rdx
add rbx, rax
mov qword [rsp + 0xa8], rbx
mov r10, qword [rsp + 0x60]
mov rax, r10
mov rcx, qword [rsp + 0x90]
imul rax, rcx
mov qword [rsp + 0xd8], rax
imul rcx, rdx
mov rbx, qword [rsp + 0x40]
mov rdx, rbx
imul rdx, r9
mov rsi, r9
add rdx, rcx
mov rax, r10
imul rax, r14
add rdx, rax
mov qword [rsp + 0xc0], rdx
mov r14, qword [rsp + 0x50]
mov rax, r14
mov r10, qword [rsp + 0x88]
imul rax, r10
mov rcx, r11
imul rcx, rdi
add rcx, rax
mov r9, qword [rsp + 0x68]
mov rax, r9
imul rax, r12
add rcx, rax
mov r12, qword [rsp + 0x48]
mov rax, r12
mov r11, r13
imul rax, r13
mov rdx, r15
mov r13, qword [rsp + 0x78]
imul rdx, r13
add rdx, rax
mov r15, qword [rsp + 0xa0]
mov rax, r15
mov rdi, qword [rsp + 0x58]
imul rax, rdi
imul r8, rbp
add r8, rax
add r8, rdx
add r8, rcx
mov qword [rsp + 0x28], r8
imul rsi, r9
mov rcx, rbx
mov r9, r10
imul rcx, r10
add rcx, rsi
mov rax, qword [rsp + 0xc8]
mov r10, qword [rsp + 0xd0]
imul rax, r10
add rcx, rax
mov rax, r14
mov r8, r15
imul rax, r15
mov rdx, qword [rsp + 0x38]
imul rdx, r11
add rdx, rax
mov r15, qword [rsp + 0x98]
mov rax, r15
imul rax, rdi
mov rsi, rdi
imul r13, rbp
add r13, rax
mov rdi, qword [rsp + 0x30]
mov rax, rdi
mov r11, r12
imul rax, r12
add r13, rax
add r13, rdx
add r13, rcx
mov qword [rsp + 0x78], r13
mov r12, qword [rsp + 0x68]
mov rax, r12
imul rax, r9
mov rcx, rbx
imul rcx, r8
mov r13, r8
add rcx, rax
mov r9, qword [rsp + 0x60]
mov rax, r9
mov rdx, qword [rsp + 0x80]
imul rax, rdx
mov qword [rsp + 0x90], rax
imul rdx, r10
add rcx, rdx
mov r10, rsi
mov rax, rsi
mov rsi, qword [rsp + 0xb8]
imul rax, rsi
mov r8, r11
imul r8, rbp
add r8, rax
mov rax, r14
mov rdx, r15
imul rax, r15
add r8, rax
mov r15, qword [rsp + 0x38]
mov rax, r15
mov r11, rdi
imul rax, rdi
add r8, rax
add r8, rcx
mov qword [rsp + 0x48], r8
mov rax, r13
imul rax, r12
mov rcx, r14
mov rdi, r14
imul rcx, rsi
mov r12, rsi
add rcx, rax
mov rax, rbx
imul rax, rdx
add rcx, rax
mov rax, r11
imul rax, r10
mov rsi, r10
mov r10, r15
imul r10, rbp
add r10, rax
add r10, rcx
mov r8, r9
mov rcx, r9
mov rax, qword [rsp + 0xb0]
imul rcx, rax
mov qword [rsp + 0x80], rcx
mov r14, qword [rsp + 0xd0]
imul rax, r14
add r10, rax
mov qword [rsp + 0x38], r10
mov rax, r9
mov rcx, qword [rsp + 0x88]
imul rax, rcx
mov qword [rsp + 0x128], rax
imul rcx, r14
mov r10, rbx
imul r10, r12
add r10, rcx
mov rax, r9
imul rax, r13
add r10, rax
mov rax, rdx
mov r9, qword [rsp + 0x68]
imul rax, r9
imul rsi, rbp
add rsi, rax
mov rcx, rdi
mov rax, rdi
imul rax, r11
add rsi, rax
mov qword [rsp + 0x58], rsi
mov rax, r9
imul rax, r12
imul rcx, rbp
add rcx, rax
mov rax, rbx
imul rax, r11
add rcx, rax
mov rax, r13
imul rax, r14
add rcx, rax
mov r13, rcx
mov r15, r8
mov rax, rdx
imul r15, rdx
imul rax, r14
imul rbx, rbp
add rbx, rax
mov rax, r11
mov rcx, r9
imul rax, r9
add rbx, rax
mov qword [rsp + 0x40], rbx
mov rax, r8
mov rdx, r12
imul r8, r12
mov qword [rsp + 0x98], r8
imul rdx, r14
imul rcx, rbp
add rcx, rdx
mov rsi, rcx
mov rcx, rax
mov rdx, r11
imul rcx, r11
imul rdx, r14
imul rax, rbp
add rax, rdx
mov qword [rsp + 0x60], rax
imul r14, rbp
mov rax, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x130]
lea r9, [rax + rdx]
add rax, rdx
add rax, 0x100000
mov edx, dword [rsp + 0x262]
shr edx, 5
and edx, 0x1fffff
mov r12, qword [rsp + 0x100]
add r12, rdx
mov rdx, rax
and rax, 0xffffffffffe00000
sub r9, rax
mov qword [rsp + 0xb0], r9
mov rax, qword [rsp + 0x118]
shr eax, 2
and eax, 0x1fffff
mov r9, qword [rsp + 0xf8]
lea r8, [r9 + rax]
mov qword [rsp + 0x68], r8
lea rdi, [rax + r9]
add rdi, 0x100000
mov rax, qword [rsp + 0xe0]
add rax, qword [rsp + 0xf0]
mov qword [rsp + 0xe0], rax
mov eax, dword [rsp + 0x26a]
shr eax, 4
and eax, 0x1fffff
mov r9, qword [rsp + 0xe8]
lea r8, [r9 + rax]
add r9, rax
add r9, 0x100000
mov rax, r9
shr rax, 0x15
add rax, qword [rsp + 0x170]
and r9, 0xffffffffffe00000
sub r8, r9
mov qword [rsp + 0x88], r8
mov r9d, dword [rsp + 0x26f]
shr r9d, 6
and r9d, 0x1fffff
mov r11, qword [rsp + 0x168]
lea r8, [r11 + r9]
mov qword [rsp + 0xc8], r8
lea r8, [r9 + r11]
add r8, 0x100000
mov qword [rsp + 0xa0], r8
mov rbp, qword [rsp + 0x158]
add rbp, qword [rsp + 0x160]
movzx r9d, byte [rsp + 0x277]
and r9d, 0x1f
shl r9d, 0x10
mov r11, qword [rsp + 0x150]
lea r8, [r11 + r9]
mov qword [rsp + 0xb8], r8
lea r8, [r9 + r11]
add r8, 0x100000
mov qword [rsp + 0x30], r8
mov rbx, qword [rsp + 0x140]
add rbx, qword [rsp + 0x148]
mov r9, qword [rsp + 0x108]
shr r9d, 2
and r9d, 0x1fffff
mov r11, qword [rsp + 0x138]
lea r8, [r11 + r9]
mov qword [rsp + 0xd0], r8
lea r8, [r9 + r11]
add r8, 0x100000
mov qword [rsp + 0x50], r8
mov r9d, dword [rsp + 0x27c]
shr r9d, 7
add qword [rsp + 0x70], r9
mov r8, qword [rsp + 0xc0]
add qword [rsp + 0x28], r8
mov r8, qword [rsp + 0x80]
add qword [rsp + 0x48], r8
add qword [rsp + 0x58], r10
mov r8, r13
add r13, r15
add r8, r15
add r8, 0x100000
mov r11, qword [rsp + 0x40]
add r11, qword [rsp + 0x98]
mov r10, r8
and r8, 0xffffffffffe00000
sub r13, r8
lea r8, [rsi + rcx]
lea r9, [rcx + rsi]
add r9, 0x100000
mov rcx, r9
and r9, 0xffffffffffe00000
sub r8, r9
lea r9, [r14 + 0x100000]
mov r15, r9
and r9, 0xffffffffffe00000
sub r14, r9
shr rdx, 0x15
lea rsi, [r12 + rdx]
add rdx, r12
add rdx, 0x100000
mov r12, rdx
shr r12, 0x15
add r12, qword [rsp + 0x68]
mov r9, rdi
and rdi, 0xffffffffffe00000
sub r12, rdi
mov qword [rsp + 0x80], r12
and rdx, 0xffffffffffe00000
sub rsi, rdx
mov qword [rsp + 0x68], rsi
shr r9, 0x15
mov rdx, qword [rsp + 0xe0]
lea rsi, [rdx + r9]
add rdx, r9
add rdx, 0x100000
mov r9, rdx
shr r9, 0x15
add r9, qword [rsp + 0x88]
mov qword [rsp + 0x88], r9
and rdx, 0xffffffffffe00000
sub rsi, rdx
mov qword [rsp + 0x98], rsi
mov rdx, qword [rsp + 0x120]
shr edx, 1
and edx, 0x1fffff
lea r9, [rax + rdx]
mov qword [rsp + 0xe0], r9
add rax, rdx
add rax, 0x100000
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xa0]
shr rax, 0x15
lea r12, [rax + rbp]
add rax, rbp
add rax, 0x100000
mov qword [rsp + 0x100], rax
shr rax, 0x15
add rax, qword [rsp + 0xb8]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x30]
shr rax, 0x15
lea r9, [rbx + rax]
mov qword [rsp + 0x118], r9
add rax, rbx
add rax, 0x100000
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x50]
shr rax, 0x15
mov rdx, qword [rsp + 0x70]
lea r9, [rdx + rax]
mov qword [rsp + 0xb8], r9
add rax, rdx
add rax, 0x100000
mov qword [rsp + 0x120], rax
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x128]
lea rax, [rbx + rdi]
add rax, 0x100000
mov rdx, rax
shr rdx, 0x15
mov r9, qword [rsp + 0x58]
lea rsi, [r9 + rdx]
add rdx, r9
add rdx, 0x100000
mov r9, rdx
shr r9, 0x15
add r9, r13
and rdx, 0xffffffffffe00000
sub rsi, rdx
mov qword [rsp + 0xc0], rsi
shr r10, 0x15
lea rdx, [r11 + r10]
add r10, r11
add r10, 0x100000
mov rsi, r10
shr rsi, 0x15
add rsi, r8
and r10, 0xffffffffffe00000
sub rdx, r10
shr rcx, 0x15
mov r8, qword [rsp + 0x60]
lea r10, [r8 + rcx]
add rcx, r8
add rcx, 0x100000
mov r13, rcx
shr r13, 0x15
add r13, r14
and rcx, 0xffffffffffe00000
sub r10, rcx
shr r15, 0x15
imul rcx, r15, 0xfffffffffff59083
add rcx, rbx
add rcx, rdi
and rax, 0xffffffffffe00000
sub rcx, rax
mov qword [rsp + 0x38], rcx
imul rax, r15, 0xa2c13
mov qword [rsp + 0x70], r15
imul rcx, r13, 0x72d18
add rcx, rax
imul r8, r13, 0xa2c13
mov rdi, r10
imul rax, r10, 0x72d18
add rax, r8
imul r8, r10, 0x9fb67
add r8, rcx
imul rcx, r13, 0xfffffffffff0c653
imul r11, r10, 0x215d1
add r11, rcx
mov qword [rsp + 0xf8], r11
imul rcx, r15, 0xfffffffffff0c653
mov r10, qword [rsp + 0x90]
add rcx, r10
mov r11, qword [rsp + 0x78]
add r10, r11
add r10, 0x100000
add rcx, r11
mov qword [rsp + 0x78], r10
and r10, 0xffffffffffe00000
sub rcx, r10
mov rbp, qword [rsp + 0xa8]
mov r14, qword [rsp + 0xd8]
lea r15, [r14 + rbp]
add r15, 0x100000
mov r11, r15
shr r11, 0x15
mov qword [rsp + 0x90], r11
mov r10, qword [rsp + 0x28]
add r10, r11
add r10, 0x100000
mov qword [rsp + 0xf0], r10
shr r10, 0x15
add rcx, r10
imul r10, r13, 0x215d1
add rcx, r10
imul r10, rdi, 0xa2c13
imul r11, rsi, 0x72d18
add r11, r10
imul rbx, rsi, 0x9fb67
add rbx, rax
imul rax, rsi, 0xfffffffffff0c653
add rax, r8
imul r8, rdx, 0xa2c13
add r8, r12
imul r10, rsi, 0xa2c13
imul r12, rdx, 0x72d18
add r12, r10
imul r10, rdx, 0x9fb67
add r10, r11
imul r11, rdx, 0xfffffffffff0c653
add r11, rbx
imul rbx, rdx, 0x215d1
add rbx, rax
mov qword [rsp + 0xe8], rbx
imul rax, qword [rsp + 0x70], 0x72d18
add rax, r14
add rax, rbp
and r15, 0xffffffffffe00000
sub rax, r15
imul rbx, r13, 0x9fb67
add rax, rbx
imul rbx, rdi, 0xfffffffffff0c653
mov r14, rdi
add rax, rbx
imul rbx, rsi, 0x215d1
add rax, rbx
imul rdx, rdx, 0xfffffffffff59083
add rax, rdx
imul r15, r9, 0xa2c13
add r15, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xa0]
and rdx, 0xffffffffffe00000
sub r15, rdx
imul rdx, r9, 0x72d18
add rdx, r8
mov r8, qword [rsp + 0x100]
and r8, 0xffffffffffe00000
sub rdx, r8
mov qword [rsp + 0x58], rdx
imul r8, r9, 0x9fb67
add r8, r12
add r8, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x30]
and rdx, 0xffffffffffe00000
sub r8, rdx
mov qword [rsp + 0x60], r8
imul rdx, r9, 0xfffffffffff0c653
add rdx, qword [rsp + 0x118]
add rdx, r10
mov r10, qword [rsp + 0x110]
mov r8, r10
and r10, 0xffffffffffe00000
sub rdx, r10
shr r8, 0x15
imul rdi, r9, 0x215d1
add rdi, r8
add rdi, r11
add rdi, qword [rsp + 0xd0]
mov r8, qword [rsp + 0x50]
and r8, 0xffffffffffe00000
sub rdi, r8
imul rbx, r9, 0xfffffffffff59083
add rbx, qword [rsp + 0xb8]
add rbx, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x120]
mov r9, r8
and r8, 0xffffffffffe00000
sub rbx, r8
mov r8, qword [rsp + 0x40]
shr r8, 0x15
lea r10, [r15 + r8]
mov qword [rsp + 0x50], r10
add r8, r15
add r8, 0x100000
mov qword [rsp + 0x30], r8
shr r9, 0x15
lea r15, [rax + r9]
add r9, rax
add r9, 0x100000
mov r11, qword [rsp + 0x70]
imul rax, r11, 0x9fb67
add rax, qword [rsp + 0x28]
add rax, qword [rsp + 0x90]
mov r8, qword [rsp + 0xf0]
and r8, 0xffffffffffe00000
sub rax, r8
add rax, qword [rsp + 0xf8]
imul r10, rsi, 0xfffffffffff59083
add rax, r10
mov rbp, r9
and r9, 0xffffffffffe00000
sub r15, r9
imul r9, r14, 0xfffffffffff59083
lea r8, [rcx + r9]
add rcx, r9
add rcx, 0x100000
mov r10, qword [rsp + 0x78]
shr r10, 0x15
imul r14, r11, 0x215d1
mov r9, qword [rsp + 0x48]
add r14, r9
add r9, r10
add r9, 0x100000
add r14, r10
mov r10, r9
and r9, 0xffffffffffe00000
sub r14, r9
imul r9, r13, 0xfffffffffff59083
add r14, r9
mov r12, rcx
and rcx, 0xffffffffffe00000
sub r8, rcx
shr r10, 0x15
mov rcx, qword [rsp + 0x38]
lea r9, [rcx + r10]
add rcx, r10
add rcx, 0x100000
mov r10, rcx
sar r10, 0x15
add r10, qword [rsp + 0xc0]
mov qword [rsp + 0x38], r10
and rcx, 0xffffffffffe00000
sub r9, rcx
mov rcx, qword [rsp + 0x60]
lea r13, [rcx + 0x100000]
mov rcx, r13
sar rcx, 0x15
lea r10, [rdx + rcx]
mov qword [rsp + 0x28], r10
add rdx, rcx
add rdx, 0x100000
lea rcx, [rdi + 0x100000]
mov r11, rcx
sar r11, 0x15
lea r10, [rbx + r11]
lea rsi, [rbx + r11]
add rsi, 0x100000
mov r11, rsi
sar r11, 0x15
add r11, r15
and rsi, 0xffffffffffe00000
sub r10, rsi
mov qword [rsp + 0xa8], r10
sar rbp, 0x15
lea rsi, [rax + rbp]
add rax, rbp
add rax, 0x100000
mov r15, rax
sar r15, 0x15
add r15, r8
and rax, 0xffffffffffe00000
sub rsi, rax
sar r12, 0x15
lea rbp, [r14 + r12]
lea rax, [r12 + r14]
add rax, 0x100000
mov r14, rax
sar r14, 0x15
add r14, r9
and rax, 0xffffffffffe00000
sub rbp, rax
mov r10, qword [rsp + 0x38]
imul rax, r10, 0xa2c13
add rax, qword [rsp + 0xe0]
mov r8, qword [rsp + 0x40]
and r8, 0xffffffffffe00000
sub rax, r8
imul r9, r10, 0x72d18
add r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x30]
mov qword [rsp + 0x48], r8
and r8, 0xffffffffffe00000
sub r9, r8
imul rbx, r10, 0x215d1
add rbx, qword [rsp + 0x28]
imul r8, r10, 0xfffffffffff59083
add r8, rdi
mov rdi, rdx
sar rdi, 0x15
add r8, rdi
and rcx, 0xffffffffffe00000
sub r8, rcx
mov qword [rsp + 0x28], r8
imul rcx, r14, 0xa2c13
add rcx, qword [rsp + 0x88]
imul rdi, r14, 0x72d18
add rdi, rax
imul r12, r14, 0x9fb67
add r12, r9
imul rax, r14, 0xfffffffffff59083
add rax, rbx
and rdx, 0xffffffffffe00000
sub rax, rdx
mov qword [rsp + 0x40], rax
imul rax, rbp, 0xa2c13
add rax, qword [rsp + 0x98]
imul rdx, rbp, 0x72d18
add rdx, rcx
imul rbx, rbp, 0x9fb67
add rbx, rdi
imul r9, rbp, 0xfffffffffff0c653
mov qword [rsp + 0x70], rbp
add r9, r12
mov r8, qword [rsp + 0x48]
sar r8, 0x15
mov qword [rsp + 0x48], r8
mov rcx, qword [rsp + 0x58]
add rcx, r8
add rcx, 0x100000
mov qword [rsp + 0x30], rcx
sar rcx, 0x15
imul r12, rbp, 0xfffffffffff59083
add r12, rcx
imul rdi, r10, 0xfffffffffff0c653
add rdi, qword [rsp + 0x60]
imul rcx, r14, 0x215d1
add rdi, rcx
add rdi, r12
and r13, 0xffffffffffe00000
sub rdi, r13
imul r12, r15, 0xa2c13
add r12, qword [rsp + 0x80]
imul rcx, r15, 0x72d18
add rcx, rax
imul rbp, r15, 0x9fb67
add rbp, rdx
imul rax, r15, 0xfffffffffff0c653
add rax, rbx
imul rdx, rsi, 0xa2c13
add rdx, qword [rsp + 0x68]
imul r13, rsi, 0x9fb67
add r13, rcx
imul rbx, rsi, 0x215d1
add rbx, rax
imul r10, r15, 0x215d1
add r10, r9
imul rcx, r11, 0x9fb67
add rcx, r12
imul r8, r11, 0x215d1
add r8, rbp
imul r9, r11, 0xa2c13
mov r12, qword [rsp + 0xb0]
lea rax, [r9 + r12]
add r12, r9
add r12, 0x100000
imul rbp, r11, 0x72d18
add rbp, rdx
mov r9, r12
and r12, 0xffffffffffe00000
sub rax, r12
mov qword [rsp + 0x50], rax
imul rdx, rsi, 0x72d18
lea rax, [rcx + rdx]
mov qword [rsp + 0x78], rax
lea r12, [rdx + rcx]
add r12, 0x100000
imul rdx, r11, 0xfffffffffff0c653
add rdx, r13
imul rax, rsi, 0xfffffffffff0c653
lea r13, [r8 + rax]
mov qword [rsp + 0x60], r13
lea r13, [rax + r8]
add r13, 0x100000
imul r11, r11, 0xfffffffffff59083
add r11, rbx
imul rax, rsi, 0xfffffffffff59083
lea rbx, [r10 + rax]
add rax, r10
add rax, 0x100000
imul rsi, qword [rsp + 0x38], 0x9fb67
add rsi, qword [rsp + 0x58]
add rsi, qword [rsp + 0x48]
imul rcx, r14, 0xfffffffffff0c653
add rsi, rcx
imul rcx, qword [rsp + 0x70], 0x215d1
add rsi, rcx
mov rcx, qword [rsp + 0x30]
and rcx, 0xffffffffffe00000
sub rsi, rcx
imul rcx, r15, 0xfffffffffff59083
add rsi, rcx
mov r10, rax
and rax, 0xffffffffffe00000
sub rbx, rax
lea rax, [rdi + 0x100000]
mov r8, rax
and rax, 0xffffffffffe00000
sub rdi, rax
sar r9, 0x15
lea rax, [r9 + rbp]
mov qword [rsp + 0x30], rax
lea rax, [r9 + rbp]
add rax, 0x100000
mov r9, r12
sar r9, 0x15
lea rcx, [rdx + r9]
add rdx, r9
add rdx, 0x100000
mov r9, r13
sar r9, 0x15
lea r14, [r11 + r9]
mov qword [rsp + 0x38], r14
lea r15, [r9 + r11]
add r15, 0x100000
mov r14, r15
sar r14, 0x15
add r14, rbx
sar r10, 0x15
lea rbp, [rsi + r10]
lea r9, [r10 + rsi]
add r9, 0x100000
mov r11, r9
sar r11, 0x15
add r11, rdi
and r9, 0xffffffffffe00000
sub rbp, r9
sar r8, 0x15
mov r9, qword [rsp + 0x40]
lea r10, [r9 + r8]
add r8, r9
add r8, 0x100000
mov qword [rsp + 0x58], r8
and r8, 0xffffffffffe00000
sub r10, r8
mov qword [rsp + 0x40], r10
mov r8, qword [rsp + 0x28]
lea r10, [r8 + 0x100000]
mov r8, r10
sar r8, 0x15
mov r9, qword [rsp + 0xa8]
lea rsi, [r9 + r8]
add r8, r9
add r8, 0x100000
mov rdi, r8
and r8, 0xffffffffffe00000
sub rsi, r8
mov qword [rsp + 0x48], rsi
sar rdi, 0x15
imul r8, rdi, 0xa2c13
add r8, qword [rsp + 0x50]
imul rbx, rdi, 0x72d18
add rbx, qword [rsp + 0x30]
mov r9, rax
and rax, 0xffffffffffe00000
sub rbx, rax
imul rax, rdi, 0x9fb67
add rax, qword [rsp + 0x78]
and r12, 0xffffffffffe00000
sub rax, r12
sar r9, 0x15
add rax, r9
imul r12, rdi, 0xfffffffffff0c653
add r12, rcx
mov rcx, rdx
and rdx, 0xffffffffffe00000
sub r12, rdx
imul rdx, rdi, 0x215d1
add rdx, qword [rsp + 0x60]
and r13, 0xffffffffffe00000
sub rdx, r13
sar rcx, 0x15
add rdx, rcx
imul r9, rdi, 0xfffffffffff59083
add r9, qword [rsp + 0x38]
and r15, 0xffffffffffe00000
sub r9, r15
mov rcx, r8
sar rcx, 0x15
add rcx, rbx
mov rdi, rcx
sar rdi, 0x15
add rdi, rax
mov r15, rdi
sar r15, 0x15
add r15, r12
mov r13, r15
sar r13, 0x15
add r13, rdx
mov rsi, r13
sar rsi, 0x15
add rsi, r9
mov r9, rsi
sar r9, 0x15
add r9, r14
mov rbx, r9
sar rbx, 0x15
add rbx, rbp
mov r14, rbx
sar r14, 0x15
add r14, r11
mov r12, r14
sar r12, 0x15
add r12, qword [rsp + 0x40]
and r10, 0xffffffffffe00000
mov r11, qword [rsp + 0x58]
sar r11, 0x15
and r8d, 0x1fffff
and ecx, 0x1fffff
and edi, 0x1fffff
and r15d, 0x1fffff
and r13d, 0x1fffff
mov rbp, qword [rsp + 0x28]
sub rbp, r10
mov rax, r12
sar rax, 0x15
add rbp, r11
add rbp, rax
mov qword [rsp + 0x28], rbp
sar rbp, 0x15
add rbp, qword [rsp + 0x48]
mov r10, rbp
sar r10, 0x15
imul rax, r10, 0xa2c13
add rax, r8
imul r8, r10, 0x72d18
add r8, rcx
imul rcx, r10, 0x9fb67
add rcx, rdi
imul r11, r10, 0xfffffffffff0c653
add r11, r15
imul rdx, r10, 0x215d1
add rdx, r13
and esi, 0x1fffff
and r9d, 0x1fffff
and ebx, 0x1fffff
and r14d, 0x1fffff
and r12d, 0x1fffff
mov r13, qword [rsp + 0x28]
and r13d, 0x1fffff
and ebp, 0x1fffff
imul r10, r10, 0xfffffffffff59083
add r10, rsi
mov r15, rax
sar r15, 0x15
add r15, r8
mov r8, r15
sar r8, 0x15
add r8, rcx
mov rdi, r8
sar rdi, 0x15
add rdi, r11
mov rsi, rdi
sar rsi, 0x15
add rsi, rdx
mov r11, rsi
sar r11, 0x15
add r11, r10
mov r10, r11
sar r10, 0x15
add r10, r9
mov r9, r10
sar r9, 0x15
add r9, rbx
mov rbx, r9
sar rbx, 0x15
add rbx, r14
mov rdx, rbx
sar rdx, 0x15
add rdx, r12
mov rcx, rdx
sar rcx, 0x15
add rcx, r13
mov r14, rcx
shr r14, 0x15
add r14d, ebp
mov rbp, qword [rsp + 0x178]
mov byte [rbp + 0x20], al
mov byte [rbp + 0x21], ah
mov r12, rbp
shr eax, 0x10
and eax, 0x1f
mov ebp, r15d
shl ebp, 5
or ebp, eax
mov byte [r12 + 0x22], bpl
mov eax, r15d
shr eax, 3
mov rbp, r12
mov byte [r12 + 0x23], al
mov eax, r15d
shr eax, 0xb
mov byte [r12 + 0x24], al
shr r15d, 0x13
and r15d, 3
lea eax, [r15 + r8*4]
mov byte [r12 + 0x25], al
mov eax, r8d
shr eax, 6
mov byte [r12 + 0x26], al
shr r8d, 0xe
and r8d, 0x7f
mov eax, edi
shl eax, 7
or eax, r8d
mov byte [r12 + 0x27], al
mov eax, edi
shr eax, 1
mov byte [r12 + 0x28], al
mov eax, edi
shr eax, 9
mov byte [r12 + 0x29], al
shr edi, 0x11
and edi, 0xf
mov eax, esi
shl eax, 4
or eax, edi
mov byte [r12 + 0x2a], al
mov eax, esi
shr eax, 4
mov byte [r12 + 0x2b], al
mov eax, esi
shr eax, 0xc
mov byte [r12 + 0x2c], al
shr esi, 0x14
and esi, 1
lea eax, [rsi + r11*2]
mov byte [r12 + 0x2d], al
mov eax, r11d
shr eax, 7
mov byte [r12 + 0x2e], al
shr r11d, 0xf
and r11d, 0x3f
mov eax, r10d
shl eax, 6
or eax, r11d
mov byte [r12 + 0x2f], al
mov eax, r10d
shr eax, 2
mov byte [r12 + 0x30], al
mov eax, r10d
shr eax, 0xa
mov byte [r12 + 0x31], al
shr r10d, 0x12
and r10d, 7
lea eax, [r10 + r9*8]
mov byte [r12 + 0x32], al
mov eax, r9d
shr eax, 5
mov byte [r12 + 0x33], al
shr r9d, 0xd
mov byte [r12 + 0x34], r9b
mov byte [r12 + 0x35], bl
mov byte [rbp + 0x36], bh
shr ebx, 0x10
and ebx, 0x1f
mov eax, edx
shl eax, 5
or eax, ebx
mov byte [r12 + 0x37], al
mov eax, edx
shr eax, 3
mov byte [r12 + 0x38], al
mov eax, edx
shr eax, 0xb
mov byte [r12 + 0x39], al
shr edx, 0x13
and edx, 3
lea eax, [rdx + rcx*4]
mov byte [r12 + 0x3a], al
mov eax, ecx
shr eax, 6
mov byte [r12 + 0x3b], al
shr ecx, 0xe
and ecx, 0x7f
mov eax, r14d
shl eax, 7
or eax, ecx
mov byte [r12 + 0x3c], al
mov eax, r14d
shr eax, 1
mov byte [r12 + 0x3d], al
mov eax, r14d
shr eax, 9
mov byte [r12 + 0x3e], al
shr r14d, 0x11
mov byte [r12 + 0x3f], r14b
mov rcx, qword [rsp + 0x430]
xor rcx, rsp
call fcn.140259980
mov eax, 1
add rsp, 0x438
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret