Function at 0x676b60
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x3a8
mov rbx, rcx
mov r15, r9
mov r14, rdx
mov rsi, r8
lea r12, [rsp + 0x2c0]
lea r13, [rsp + 0x1a0]
mov rcx, r12
lea rdi, [rsp + 0x100]
lea rbp, [rsp + 0x130]
call sym.SHA512_Init
mov rdx, qword [rsp + 0x410]
mov r8d, 0x20
mov rcx, r12
call sym.SHA512_Update
mov rdx, r12
lea rcx, [rsp + 0x160]
call sym.SHA512_Final
movzx eax, byte [rsp + 0x17f]
mov rcx, r12
and byte [rsp + 0x160], 0xf8
and eax, 0x3f
or eax, 0x40
mov byte [rsp + 0x17f], al
call sym.SHA512_Init
lea rdx, [rsp + 0x180]
mov rcx, r12
mov r8d, 0x20
call sym.SHA512_Update
mov r8, rsi
mov rdx, r14
mov rcx, r12
call sym.SHA512_Update
mov rdx, r12
mov rcx, r13
call sym.SHA512_Final
mov rcx, r13
call sym.x25519_sc_reduce
lea r9, [rsp + 0x220]
mov rdx, r13
lea r13, [rsp + 0x1e0]
mov rcx, r9
mov qword [rsp + 0x28], r9
call sym.ge_scalarmult_base_1
lea rdx, [rsp + 0x270]
mov rcx, rdi
call sym.fe_invert_1
mov r9, qword [rsp + 0x28]
mov r8, rdi
mov rcx, rbp
mov rdx, r9
call sym.fe_mul_1
mov r8, rdi
lea rdx, [rsp + 0x248]
mov rcx, r13
call sym.fe_mul_1
mov rdx, r13
mov rcx, rbx
call sym.fe_tobytes_1
mov rdx, rbp
lea rcx, [rsp + 0xe0]
call sym.fe_tobytes_1
movzx eax, byte [rsp + 0xe0]
mov rcx, r12
and eax, 1
shl eax, 7
xor byte [rbx + 0x1f], al
call sym.SHA512_Init
mov rdx, rbx
mov rcx, r12
mov r8d, 0x20
call sym.SHA512_Update
mov rdx, r15
mov rcx, r12
mov r8d, 0x20
call sym.SHA512_Update
mov r8, rsi
mov rdx, r14
mov rcx, r12
call sym.SHA512_Update
mov rdx, r12
mov rcx, r13
call sym.SHA512_Final
mov rcx, r13
call sym.x25519_sc_reduce
movzx eax, byte [rsp + 0x1e2]
movzx r8d, byte [rsp + 0x1e1]
movzx edx, byte [rsp + 0x1e0]
mov edi, dword [rsp + 0x1e7]
mov r12d, dword [rsp + 0x1e2]
shl rax, 0x10
shl r8, 8
movzx ecx, byte [rsp + 0x1e6]
or r8, rax
movzx eax, byte [rsp + 0x1e7]
movzx r9d, byte [rsp + 0x1f5]
or r8, rdx
shr r12, 5
movzx edx, byte [rsp + 0x1ef]
mov r11d, dword [rsp + 0x1ea]
and r8d, 0x1fffff
and r12d, 0x1fffff
shl rax, 0x10
shl rcx, 8
shl rdx, 0x10
shr rdi, 7
or rcx, rax
movzx eax, byte [rsp + 0x1e5]
shr r11, 4
and edi, 0x1fffff
and r11d, 0x1fffff
or rcx, rax
movzx eax, byte [rsp + 0x1ee]
shr rcx, 2
shl rax, 8
and ecx, 0x1fffff
or rax, rdx
movzx edx, byte [rsp + 0x1ed]
or rax, rdx
movzx edx, byte [rsp + 0x1f4]
shr rax, 1
and eax, 0x1fffff
shl rdx, 0x10
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x1ef]
shr rax, 6
and eax, 0x1fffff
mov qword [rsp + 0x60], rax
movzx eax, byte [rsp + 0x1f3]
shl rax, 8
or rax, rdx
movzx edx, byte [rsp + 0x1f2]
or rax, rdx
movzx edx, byte [rsp + 0x1f7]
mov rsi, rax
movzx eax, byte [rsp + 0x1f6]
shl rdx, 0x10
shr rsi, 3
shl rax, 8
mov qword [rsp + 0x68], rsi
or rax, rdx
or rax, r9
mov rdx, rax
mov eax, dword [rsp + 0x1f7]
and edx, 0x1fffff
shr rax, 5
mov qword [rsp + 0x70], rdx
movzx edx, byte [rsp + 0x1fc]
mov r10, rax
movzx eax, byte [rsp + 0x1fb]
and r10d, 0x1fffff
shl rax, 8
shl rdx, 0x10
mov qword [rsp + 0x78], r10
movzx r10d, byte [rsp + 0x160]
or rax, rdx
movzx edx, byte [rsp + 0x1fa]
or rax, rdx
shr rax, 2
mov r15, rax
and r15d, 0x1fffff
mov qword [rsp + 0x80], r15
mov r15d, dword [rsp + 0x1fc]
shr r15, 7
mov qword [rsp + 0x50], r15
movzx eax, byte [rsp + 0x161]
movzx edx, byte [rsp + 0x162]
mov ebp, dword [rsp + 0x162]
shl rax, 8
mov esi, dword [rsp + 0x167]
movzx r15d, byte [rsp + 0x175]
shl rdx, 0x10
mov r9, rax
shr rbp, 5
or r9, rdx
movzx edx, byte [rsp + 0x166]
shr rsi, 7
and ebp, 0x1fffff
or r9, r10
mov r10d, dword [rsp + 0x16a]
and esi, 0x1fffff
shl rdx, 8
and r9d, 0x1fffff
mov rax, rdx
movzx edx, byte [rsp + 0x167]
shr r10, 4
and r10d, 0x1fffff
shl rdx, 0x10
or rdx, rax
movzx eax, byte [rsp + 0x165]
or rdx, rax
movzx eax, byte [rsp + 0x16e]
shr rdx, 2
mov r13, rax
movzx eax, byte [rsp + 0x16f]
and edx, 0x1fffff
shl r13, 8
shl rax, 0x10
or rax, r13
movzx r13d, byte [rsp + 0x16d]
or rax, r13
mov r13d, dword [rsp + 0x16f]
shr rax, 1
shr r13, 6
and eax, 0x1fffff
and r13d, 0x1fffff
mov qword [rsp + 0x30], r13
movzx r13d, byte [rsp + 0x173]
shl r13, 8
mov r14, r13
movzx r13d, byte [rsp + 0x174]
shl r13, 0x10
or r13, r14
movzx r14d, byte [rsp + 0x172]
or r13, r14
movzx r14d, byte [rsp + 0x177]
shr r13, 3
mov qword [rsp + 0x38], r13
shl r14, 0x10
movzx r13d, byte [rsp + 0x176]
shl r13, 8
or r13, r14
movzx r14d, byte [rsp + 0x17a]
or r13, r15
mov r15, r13
mov r13d, dword [rsp + 0x177]
and r15d, 0x1fffff
shr r13, 5
mov qword [rsp + 0x40], r15
and r13d, 0x1fffff
mov qword [rsp + 0x28], r13
movzx r13d, byte [rsp + 0x17b]
mov r15, r13
movzx r13d, byte [rsp + 0x17c]
shl r15, 8
shl r13, 0x10
or r13, r15
or r13, r14
shr r13, 2
mov r15, r13
movzx r13d, byte [rsp + 0x1a0]
and r15d, 0x1fffff
mov qword [rsp + 0x88], r13
movzx r13d, byte [rsp + 0x1b5]
mov qword [rsp + 0x48], r15
mov r15d, dword [rsp + 0x17c]
mov qword [rsp + 0x90], r13
movzx r13d, byte [rsp + 0x1a1]
movzx r14d, byte [rsp + 0x1a2]
shr r15, 7
shl r13, 8
shl r14, 0x10
or r13, r14
or r13, qword [rsp + 0x88]
and r13d, 0x1fffff
mov r14, r13
mov r13, r8
imul r13, r9
add r13, r14
mov r14d, dword [rsp + 0x1a2]
mov qword [rsp + 0x88], r13
mov r13, r8
imul r13, rbp
shr r14, 5
and r14d, 0x1fffff
add r14, r13
mov r13, r12
imul r13, r9
add r13, r14
mov qword [rsp + 0x98], r13
movzx r13d, byte [rsp + 0x1a6]
shl r13, 8
mov r14, r13
movzx r13d, byte [rsp + 0x1a7]
shl r13, 0x10
or r13, r14
movzx r14d, byte [rsp + 0x1a5]
or r13, r14
mov r14, r8
imul r14, rdx
shr r13, 2
and r13d, 0x1fffff
add r14, r13
mov r13, r12
imul r13, rbp
add r13, r14
mov r14, rcx
imul r14, r9
add r13, r14
mov r14, r8
mov qword [rsp + 0xa0], r13
mov r13d, dword [rsp + 0x1a7]
imul r14, rsi
shr r13, 7
and r13d, 0x1fffff
add r14, r13
mov r13, r12
imul r13, rdx
add r14, r13
mov r13, rcx
imul r13, rbp
add r13, r14
mov r14, rdi
imul r14, r9
add r14, r13
mov r13d, dword [rsp + 0x1aa]
mov qword [rsp + 0xa8], r14
mov r14, r8
imul r14, r10
shr r13, 4
and r13d, 0x1fffff
add r13, r14
mov r14, r12
imul r14, rsi
add r14, r13
mov r13, rcx
imul r13, rdx
add r14, r13
mov r13, rdi
imul r13, rbp
add r13, r14
mov r14, r11
imul r14, r9
add r13, r14
mov qword [rsp + 0xb0], r13
movzx r13d, byte [rsp + 0x1ae]
mov r14, r13
movzx r13d, byte [rsp + 0x1af]
shl r14, 8
shl r13, 0x10
or r13, r14
movzx r14d, byte [rsp + 0x1ad]
or r13, r14
mov r14, r8
imul r14, rax
shr r13, 1
and r13d, 0x1fffff
add r13, r14
mov r14, r12
imul r14, r10
add r13, r14
mov r14, rcx
imul r14, rsi
add r14, r13
mov r13, rdi
imul r13, rdx
add r14, r13
mov r13, r11
imul r13, rbp
add r13, r14
mov r14, qword [rsp + 0x58]
imul r14, r9
add r14, r13
mov r13d, dword [rsp + 0x1af]
mov qword [rsp + 0xb8], r14
mov r14, qword [rsp + 0x30]
shr r13, 6
imul r14, r8
and r13d, 0x1fffff
add r14, r13
mov r13, r12
imul r13, rax
add r13, r14
mov r14, rcx
imul r14, r10
add r13, r14
mov r14, rdi
imul r14, rsi
add r14, r13
mov r13, r11
imul r13, rdx
add r14, r13
mov r13, qword [rsp + 0x58]
imul r13, rbp
add r13, r14
mov r14, qword [rsp + 0x60]
imul r14, r9
add r14, r13
movzx r13d, byte [rsp + 0x1b3]
mov qword [rsp + 0xc0], r14
shl r13, 8
mov r14, r13
movzx r13d, byte [rsp + 0x1b4]
shl r13, 0x10
or r13, r14
movzx r14d, byte [rsp + 0x1b2]
or r13, r14
mov r14, qword [rsp + 0x38]
shr r13, 3
imul r14, r8
add r14, r13
mov r13, qword [rsp + 0x30]
imul r13, r12
add r14, r13
mov r13, rcx
imul r13, rax
add r13, r14
mov r14, rdi
imul r14, r10
add r13, r14
mov r14, r11
imul r14, rsi
add r14, r13
mov r13, qword [rsp + 0x58]
imul r13, rdx
add r14, r13
mov r13, qword [rsp + 0x60]
imul r13, rbp
add r13, r14
mov r14, qword [rsp + 0x68]
imul r14, r9
add r13, r14
mov qword [rsp + 0xc8], r13
movzx r13d, byte [rsp + 0x1b6]
movzx r14d, byte [rsp + 0x1b7]
shl r13, 8
shl r14, 0x10
or r13, r14
mov r14, qword [rsp + 0x40]
or r13, qword [rsp + 0x90]
and r13d, 0x1fffff
imul r14, r8
add r13, r14
mov r14, qword [rsp + 0x38]
imul r14, r12
add r14, r13
mov r13, qword [rsp + 0x30]
imul r13, rcx
add r14, r13
mov r13, rdi
imul r13, rax
add r13, r14
mov r14, r11
imul r14, r10
add r13, r14
mov r14, qword [rsp + 0x58]
imul r14, rsi
add r14, r13
mov r13, qword [rsp + 0x60]
imul r13, rdx
add r14, r13
mov r13, qword [rsp + 0x68]
imul r13, rbp
add r13, r14
mov r14, qword [rsp + 0x70]
imul r14, r9
add r14, r13
mov r13d, dword [rsp + 0x1b7]
mov qword [rsp + 0x90], r14
mov r14, qword [rsp + 0x28]
shr r13, 5
imul r14, r8
and r13d, 0x1fffff
add r13, r14
mov r14, qword [rsp + 0x40]
imul r14, r12
add r13, r14
mov r14, qword [rsp + 0x38]
imul r14, rcx
add r14, r13
mov r13, qword [rsp + 0x30]
imul r13, rdi
add r14, r13
mov r13, r11
imul r13, rax
add r13, r14
mov r14, qword [rsp + 0x58]
imul r14, r10
add r13, r14
mov r14, qword [rsp + 0x60]
imul r14, rsi
add r14, r13
mov r13, qword [rsp + 0x68]
imul r13, rdx
add r14, r13
mov r13, qword [rsp + 0x70]
imul r13, rbp
add r13, r14
mov r14, qword [rsp + 0x78]
imul r14, r9
add r13, r14
mov qword [rsp + 0xd0], r13
movzx r13d, byte [rsp + 0x1bb]
shl r13, 8
mov r14, r13
movzx r13d, byte [rsp + 0x1bc]
shl r13, 0x10
or r13, r14
movzx r14d, byte [rsp + 0x1ba]
or r13, r14
mov r14, qword [rsp + 0x48]
shr r13, 2
imul r14, r8
and r13d, 0x1fffff
add r14, r13
mov r13, qword [rsp + 0x28]
imul r13, r12
add r13, r14
mov r14, qword [rsp + 0x40]
imul r14, rcx
add r13, r14
mov r14, qword [rsp + 0x38]
imul r14, rdi
add r14, r13
mov r13, qword [rsp + 0x30]
imul r13, r11
add r14, r13
mov r13, qword [rsp + 0x58]
imul r13, rax
add r13, r14
mov r14, qword [rsp + 0x60]
imul r14, r10
add r13, r14
mov r14, qword [rsp + 0x68]
imul r14, rsi
add r14, r13
mov r13, qword [rsp + 0x70]
imul r13, rdx
add r14, r13
mov r13, qword [rsp + 0x78]
imul r13, rbp
add r13, r14
mov r14, qword [rsp + 0x80]
imul r14, r9
add r14, r13
imul r8, r15
mov r13d, dword [rsp + 0x1bc]
imul r9, qword [rsp + 0x50]
shr r13, 7
add r8, r13
mov r13, qword [rsp + 0x48]
imul r13, r12
imul r12, r15
add r13, r8
mov r8, qword [rsp + 0x28]
imul r8, rcx
add r13, r8
mov r8, qword [rsp + 0x40]
imul r8, rdi
add r8, r13
mov r13, qword [rsp + 0x38]
imul r13, r11
add r8, r13
mov r13, qword [rsp + 0x58]
imul r13, qword [rsp + 0x30]
add r13, r8
mov r8, qword [rsp + 0x60]
imul r8, rax
add r13, r8
mov r8, qword [rsp + 0x68]
imul r8, r10
add r8, r13
mov r13, qword [rsp + 0x70]
imul r13, rsi
add r8, r13
mov r13, qword [rsp + 0x78]
imul r13, rdx
add r13, r8
mov r8, qword [rsp + 0x80]
imul r8, rbp
add r8, r13
mov r13, qword [rsp + 0x60]
add r9, r8
mov qword [rsp + 0xd8], r9
mov r9, qword [rsp + 0x48]
imul r9, rcx
add r12, r9
mov r9, qword [rsp + 0x28]
imul r9, rdi
mov r8, r9
mov r9, qword [rsp + 0x40]
add r8, r12
mov r12, qword [rsp + 0x58]
imul r9, r11
add r8, r9
mov r9, qword [rsp + 0x38]
imul rbp, qword [rsp + 0x50]
imul rcx, r15
imul r9, r12
add r9, r8
mov r8, qword [rsp + 0x30]
imul r8, r13
add r9, r8
mov r8, qword [rsp + 0x68]
imul r8, rax
add r8, r9
mov r9, qword [rsp + 0x70]
imul r9, r10
add r8, r9
mov r9, qword [rsp + 0x78]
imul r9, rsi
add r9, r8
mov r8, qword [rsp + 0x80]
imul r8, rdx
add r8, r9
add rbp, r8
mov r8, qword [rsp + 0x48]
imul r8, rdi
add rcx, r8
mov r8, qword [rsp + 0x28]
imul r8, r11
add rcx, r8
mov r8, qword [rsp + 0x40]
mov r9, qword [rsp + 0x68]
imul r8, r12
add r8, rcx
mov rcx, qword [rsp + 0x38]
imul rcx, r13
add r8, rcx
mov rcx, qword [rsp + 0x30]
imul rcx, r9
add rcx, r8
mov r8, qword [rsp + 0x70]
imul r8, rax
add rcx, r8
mov r8, qword [rsp + 0x78]
imul r8, r10
add r8, rcx
mov rcx, qword [rsp + 0x80]
imul rcx, rsi
add rcx, r8
imul rdx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x78]
imul rdi, r15
imul rsi, qword [rsp + 0x50]
add rdx, rcx
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x58], rdx
mov rdx, qword [rsp + 0x40]
imul rcx, r11
imul rdx, r13
imul r11, r15
add rdi, rcx
mov rcx, qword [rsp + 0x28]
imul rcx, r12
add rcx, rdi
mov rdi, qword [rsp + 0x70]
add rcx, rdx
mov rdx, qword [rsp + 0x38]
imul rdx, r9
add rdx, rcx
mov rcx, qword [rsp + 0x30]
imul rcx, rdi
add rdx, rcx
mov rcx, r8
imul rcx, rax
add rcx, rdx
mov rdx, qword [rsp + 0x80]
imul rdx, r10
add rdx, rcx
mov rcx, qword [rsp + 0x38]
add rsi, rdx
mov rdx, qword [rsp + 0x48]
imul rcx, rdi
mov qword [rsp + 0x60], rsi
mov rsi, qword [rsp + 0x80]
imul rdx, r12
add r11, rdx
mov rdx, qword [rsp + 0x28]
imul rdx, r13
add r11, rdx
mov rdx, qword [rsp + 0x40]
imul rdx, r9
add rdx, r11
mov r11, rsi
add rdx, rcx
mov rcx, qword [rsp + 0x30]
imul rcx, r8
add rcx, rdx
mov rdx, rsi
imul rdx, rax
add rdx, rcx
imul r10, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
imul r12, r15
imul rcx, r13
add r10, rdx
mov rdx, qword [rsp + 0x28]
imul rax, qword [rsp + 0x50]
imul r13, r15
imul rdx, r9
add rcx, r12
mov r12, qword [rsp + 0x30]
add rdx, rcx
mov rcx, qword [rsp + 0x40]
imul rcx, rdi
add rdx, rcx
mov rcx, qword [rsp + 0x38]
imul rcx, r8
add rcx, rdx
mov rdx, rsi
mov rsi, qword [rsp + 0x48]
imul rdx, r12
imul rsi, r9
imul r9, r15
add rdx, rcx
add rax, rdx
mov rdx, qword [rsp + 0x28]
add rsi, r13
mov r13, qword [rsp + 0x38]
mov rcx, r9
mov r9, r8
imul rdx, rdi
add rsi, rdx
mov rdx, qword [rsp + 0x40]
imul rdx, r8
add rdx, rsi
mov rsi, r11
imul rsi, r13
add rsi, rdx
mov rdx, qword [rsp + 0x50]
imul rdx, r12
mov r12, qword [rsp + 0x40]
add rsi, rdx
mov rdx, qword [rsp + 0x48]
imul rdx, rdi
add rcx, rdx
mov rdx, qword [rsp + 0x28]
imul rdx, r8
add rdx, rcx
mov rcx, r11
imul rcx, r12
add rdx, rcx
imul rdi, r15
mov rcx, r13
mov r13, qword [rsp + 0x50]
imul rcx, r13
mov r8, rdi
imul r12, r13
mov rdi, r11
mov r13, qword [rsp + 0x28]
add rcx, rdx
mov rdx, qword [rsp + 0x48]
imul rdx, r9
imul r9, r15
add r8, rdx
mov rdx, qword [rsp + 0x28]
imul rdx, r11
add r8, rdx
mov rdx, rdi
imul rdi, r15
lea r11, [r8 + r12]
mov r8, qword [rsp + 0x50]
mov r12, qword [rsp + 0x98]
mov qword [rsp + 0x30], r11
mov r11, r9
mov r9, qword [rsp + 0x48]
imul r13, r8
imul rdx, r9
imul r9, r8
imul r15, r8
mov r8, qword [rsp + 0xa8]
add rdx, r11
lea r11, [rdx + r13]
mov rdx, rdi
mov rdi, qword [rsp + 0x88]
add rdx, r9
mov r9, qword [rsp + 0xa0]
mov qword [rsp + 0x28], rdx
lea rdx, [rdi + 0x100000]
sar rdx, 0x15
add r12, rdx
shl rdx, 0x15
sub rdi, rdx
lea rdx, [r9 + 0x100000]
mov qword [rsp + 0x38], r12
mov r12, qword [rsp + 0xb8]
sar rdx, 0x15
mov qword [rsp + 0x40], rdi
mov rdi, qword [rsp + 0xc0]
lea r13, [r8 + rdx]
mov r8, qword [rsp + 0xb0]
shl rdx, 0x15
sub r9, rdx
lea rdx, [r8 + 0x100000]
mov qword [rsp + 0x48], r9
mov r9, qword [rsp + 0x90]
sar rdx, 0x15
add r12, rdx
shl rdx, 0x15
sub r8, rdx
mov rdx, rdi
mov qword [rsp + 0x50], r8
add rdx, 0x100000
mov r8, qword [rsp + 0xc8]
sar rdx, 0x15
add r8, rdx
shl rdx, 0x15
sub rdi, rdx
mov rdx, r9
mov qword [rsp + 0x68], r8
mov r8, qword [rsp + 0xd0]
add rdx, 0x100000
mov qword [rsp + 0x70], rdi
sar rdx, 0x15
lea rdi, [r8 + rdx]
shl rdx, 0x15
mov r8, r14
sub r9, rdx
lea rdx, [r14 + 0x100000]
mov qword [rsp + 0x78], r9
sar rdx, 0x15
mov r14, qword [rsp + 0x48]
mov r9, qword [rsp + 0xd8]
add r9, rdx
shl rdx, 0x15
sub r8, rdx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x80], r8
lea r8, [rbp + 0x100000]
sar r8, 0x15
add rdx, r8
shl r8, 0x15
sub rbp, r8
mov qword [rsp + 0x58], rbp
mov rbp, qword [rsp + 0x60]
lea r8, [rbp + 0x100000]
sar r8, 0x15
add r10, r8
shl r8, 0x15
sub rbp, r8
lea r8, [rax + 0x100000]
sar r8, 0x15
mov qword [rsp + 0x60], rbp
mov rbp, qword [rsp + 0x38]
add rsi, r8
shl r8, 0x15
sub rax, r8
mov r8, qword [rsp + 0x30]
mov qword [rsp + 0x88], rax
lea rax, [rcx + 0x100000]
sar rax, 0x15
add r8, rax
shl rax, 0x15
sub rcx, rax
lea rax, [r11 + 0x100000]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x28]
sar rax, 0x15
add rcx, rax
shl rax, 0x15
sub r11, rax
lea rax, [r15 + 0x100000]
sar rax, 0x15
mov qword [rsp + 0x28], r11
mov r11, rax
shl r11, 0x15
sub r15, r11
mov r11, rbp
add r11, 0x100000
sar r11, 0x15
add r14, r11
shl r11, 0x15
sub rbp, r11
mov qword [rsp + 0x38], r14
lea r11, [r13 + 0x100000]
mov r14, qword [rsp + 0x50]
sar r11, 0x15
mov qword [rsp + 0x48], rbp
lea rbp, [r14 + r11]
shl r11, 0x15
mov r14, qword [rsp + 0x70]
sub r13, r11
lea r11, [r12 + 0x100000]
mov qword [rsp + 0x50], rbp
sar r11, 0x15
mov qword [rsp + 0x90], r13
lea r13, [r14 + r11]
shl r11, 0x15
mov r14, qword [rsp + 0x78]
sub r12, r11
mov qword [rsp + 0x70], r13
mov r13, qword [rsp + 0x80]
mov qword [rsp + 0x98], r12
mov r12, qword [rsp + 0x68]
lea r11, [r12 + 0x100000]
sar r11, 0x15
add r14, r11
shl r11, 0x15
sub r12, r11
lea r11, [rdi + 0x100000]
mov qword [rsp + 0x68], r14
mov r14, qword [rsp + 0x60]
sar r11, 0x15
mov qword [rsp + 0x78], r12
lea r12, [r13 + r11]
shl r11, 0x15
mov r13, qword [rsp + 0x58]
sub rdi, r11
lea r11, [r9 + 0x100000]
sar r11, 0x15
mov qword [rsp + 0x80], rdi
lea rbp, [r13 + r11]
shl r11, 0x15
sub r9, r11
lea r11, [rdx + 0x100000]
sar r11, 0x15
lea rdi, [r14 + r11]
shl r11, 0x15
mov r14, qword [rsp + 0x88]
sub rdx, r11
lea r11, [r10 + 0x100000]
sar r11, 0x15
lea r13, [r14 + r11]
shl r11, 0x15
mov r14, qword [rsp + 0x30]
sub r10, r11
lea r11, [rsi + 0x100000]
sar r11, 0x15
add r14, r11
shl r11, 0x15
sub rsi, r11
mov qword [rsp + 0x30], rsi
mov r11, qword [rsp + 0x28]
lea rsi, [r8 + 0x100000]
sar rsi, 0x15
add r11, rsi
shl rsi, 0x15
sub r8, rsi
lea rsi, [rcx + 0x100000]
sar rsi, 0x15
add r15, rsi
shl rsi, 0x15
sub rcx, rsi
imul rsi, rax, 0xa2c13
add r9, rsi
imul rsi, rax, 0x72d18
add rbp, rsi
imul rsi, rax, 0x9fb67
add rdx, rsi
imul rsi, rax, 0xfffffffffff0c653
add rdi, rsi
imul rsi, rax, 0x215d1
imul rax, rax, 0xfffffffffff59083
add r10, rsi
imul rsi, rcx, 0xa2c13
add r13, rax
imul rax, r15, 0xa2c13
add r12, rax
imul rax, r15, 0x72d18
add r9, rax
imul rax, r15, 0x9fb67
add rbp, rax
imul rax, r15, 0xfffffffffff0c653
add rdx, rax
imul rax, r15, 0x215d1
imul r15, r15, 0xfffffffffff59083
add rdi, rax
add r10, r15
add rsi, qword [rsp + 0x80]
imul rax, rcx, 0x72d18
add r12, rax
imul rax, rcx, 0x9fb67
add r9, rax
imul rax, rcx, 0xfffffffffff0c653
add rbp, rax
imul rax, rcx, 0x215d1
imul rcx, rcx, 0xfffffffffff59083
add rdx, rax
imul rax, r11, 0x72d18
add rdi, rcx
imul rcx, r11, 0xa2c13
add rcx, qword [rsp + 0x68]
add rsi, rax
imul rax, r11, 0x9fb67
add r12, rax
imul rax, r11, 0xfffffffffff0c653
add r9, rax
imul rax, r11, 0x215d1
imul r11, r11, 0xfffffffffff59083
add rbp, rax
imul rax, r8, 0x72d18
add rdx, r11
imul r11, r8, 0xa2c13
add r11, qword [rsp + 0x78]
add rcx, rax
imul rax, r8, 0x9fb67
add rsi, rax
imul rax, r8, 0xfffffffffff0c653
add r12, rax
imul rax, r8, 0x215d1
add r9, rax
imul rax, r14, 0x72d18
imul r8, r8, 0xfffffffffff59083
add r11, rax
imul rax, r14, 0x9fb67
add rbp, r8
imul r8, r14, 0xa2c13
add r8, qword [rsp + 0x70]
add rcx, rax
imul rax, r14, 0xfffffffffff0c653
add rsi, rax
imul rax, r14, 0x215d1
imul r14, r14, 0xfffffffffff59083
add r12, rax
lea rax, [r8 + 0x100000]
sar rax, 0x15
add r9, r14
lea r15, [r12 + 0x100000]
add r11, rax
shl rax, 0x15
lea r14, [rbp + 0x100000]
sar r15, 0x15
sub r8, rax
lea rax, [rcx + 0x100000]
sar r14, 0x15
sar rax, 0x15
add r9, r15
add rdx, r14
shl r15, 0x15
add rsi, rax
shl rax, 0x15
sub r12, r15
mov r15, qword [rsp + 0x30]
sub rcx, rax
lea rax, [rdi + 0x100000]
shl r14, 0x15
sar rax, 0x15
sub rbp, r14
add r10, rax
shl rax, 0x15
sub rdi, rax
lea rax, [r13 + 0x100000]
sar rax, 0x15
lea r14, [r15 + rax]
lea r15, [rsi + 0x100000]
shl rax, 0x15
sar r15, 0x15
sub r13, rax
lea rax, [r11 + 0x100000]
add r12, r15
shl r15, 0x15
sub rsi, r15
lea r15, [r9 + 0x100000]
sar rax, 0x15
sar r15, 0x15
add rcx, rax
shl rax, 0x15
add rbp, r15
shl r15, 0x15
sub r11, rax
sub r9, r15
imul rax, r14, 0x72d18
lea r15, [rdx + 0x100000]
sar r15, 0x15
add rdi, r15
shl r15, 0x15
sub rdx, r15
add r8, rax
lea r15, [r10 + 0x100000]
imul rax, r14, 0x9fb67
sar r15, 0x15
add r13, r15
shl r15, 0x15
sub r10, r15
imul r15, r14, 0xa2c13
add r15, qword [rsp + 0x98]
add r11, rax
imul rax, r14, 0xfffffffffff0c653
add rcx, rax
imul rax, r14, 0x215d1
imul r14, r14, 0xfffffffffff59083
add rsi, rax
imul rax, r13, 0x72d18
add r12, r14
imul r14, r13, 0xa2c13
add r14, qword [rsp + 0x50]
add r15, rax
imul rax, r13, 0x9fb67
add r8, rax
imul rax, r13, 0xfffffffffff0c653
add r11, rax
imul rax, r13, 0x215d1
imul r13, r13, 0xfffffffffff59083
add rcx, rax
imul rax, r10, 0x72d18
add rsi, r13
imul r13, r10, 0xa2c13
add r13, qword [rsp + 0x90]
add r14, rax
imul rax, r10, 0x9fb67
add r15, rax
imul rax, r10, 0xfffffffffff0c653
add r8, rax
imul rax, r10, 0x215d1
imul r10, r10, 0xfffffffffff59083
add r11, rax
add rcx, r10
imul r10, rdi, 0xa2c13
add r10, qword [rsp + 0x38]
imul rax, rdi, 0x72d18
add r13, rax
imul rax, rdi, 0x9fb67
add r14, rax
imul rax, rdi, 0xfffffffffff0c653
add r15, rax
imul rax, rdi, 0x215d1
imul rdi, rdi, 0xfffffffffff59083
add r8, rax
imul rax, rdx, 0x72d18
add r11, rdi
imul rdi, rdx, 0xa2c13
add rdi, qword [rsp + 0x48]
add r10, rax
imul rax, rdx, 0x9fb67
add r13, rax
imul rax, rdx, 0xfffffffffff0c653
add r14, rax
imul rax, rdx, 0x215d1
imul rdx, rdx, 0xfffffffffff59083
add r15, rax
imul rax, rbp, 0x72d18
add r8, rdx
imul rdx, rbp, 0xa2c13
add rdx, qword [rsp + 0x40]
add rdi, rax
imul rax, rbp, 0x9fb67
add r10, rax
imul rax, rbp, 0xfffffffffff0c653
add r13, rax
imul rax, rbp, 0x215d1
add r14, rax
lea rax, [rdx + 0x100000]
imul rbp, rbp, 0xfffffffffff59083
sar rax, 0x15
add rdi, rax
shl rax, 0x15
sub rdx, rax
lea rax, [r10 + 0x100000]
sar rax, 0x15
add r15, rbp
add r13, rax
shl rax, 0x15
sub r10, rax
lea rax, [r14 + 0x100000]
sar rax, 0x15
add r15, rax
shl rax, 0x15
sub r14, rax
lea rax, [r8 + 0x100000]
sar rax, 0x15
add r11, rax
shl rax, 0x15
sub r8, rax
lea rax, [rcx + 0x100000]
sar rax, 0x15
add rsi, rax
shl rax, 0x15
sub rcx, rax
lea rax, [r12 + 0x100000]
sar rax, 0x15
add r9, rax
shl rax, 0x15
sub r12, rax
lea rax, [rdi + 0x100000]
lea rbp, [r9 + 0x100000]
sar rax, 0x15
add r10, rax
shl rax, 0x15
sub rdi, rax
lea rax, [r13 + 0x100000]
sar rax, 0x15
add r14, rax
shl rax, 0x15
sub r13, rax
lea rax, [r15 + 0x100000]
sar rax, 0x15
add r8, rax
shl rax, 0x15
sub r15, rax
lea rax, [r11 + 0x100000]
sar rax, 0x15
add rcx, rax
shl rax, 0x15
sub r11, rax
lea rax, [rsi + 0x100000]
sar rax, 0x15
add r12, rax
shl rax, 0x15
sub rsi, rax
mov rax, rbp
and rbp, 0xffffffffffe00000
sar rax, 0x15
sub r9, rbp
imul rbp, rax, 0xa2c13
add rdx, rbp
imul rbp, rax, 0x72d18
add rdi, rbp
imul rbp, rax, 0x9fb67
add r10, rbp
imul rbp, rax, 0xfffffffffff0c653
add r13, rbp
imul rbp, rax, 0x215d1
imul rax, rax, 0xfffffffffff59083
add r14, rbp
add r15, rax
mov rax, rdx
sar rax, 0x15
add rdi, rax
shl rax, 0x15
sub rdx, rax
mov rax, rdi
sar rax, 0x15
mov rbp, rdx
add r10, rax
shl rax, 0x15
sub rdi, rax
mov rax, r10
sar rax, 0x15
add r13, rax
shl rax, 0x15
sub r10, rax
mov rax, r13
sar rax, 0x15
add r14, rax
shl rax, 0x15
sub r13, rax
mov rax, r14
sar rax, 0x15
add r15, rax
shl rax, 0x15
sub r14, rax
mov rax, r15
sar rax, 0x15
add r8, rax
shl rax, 0x15
mov rdx, r8
sub r15, rax
sar rdx, 0x15
add r11, rdx
shl rdx, 0x15
sub r8, rdx
mov rdx, r11
sar rdx, 0x15
add rcx, rdx
shl rdx, 0x15
sub r11, rdx
mov rdx, rcx
sar rdx, 0x15
add rsi, rdx
shl rdx, 0x15
sub rcx, rdx
mov rdx, rsi
sar rdx, 0x15
add r12, rdx
shl rdx, 0x15
mov rax, r12
sub rsi, rdx
sar rax, 0x15
add r9, rax
shl rax, 0x15
mov rdx, r9
sub r12, rax
and r9d, 0x1fffff
sar rdx, 0x15
imul rax, rdx, 0xa2c13
add rbp, rax
imul rax, rdx, 0x72d18
add rdi, rax
imul rax, rdx, 0x9fb67
add r10, rax
imul rax, rdx, 0xfffffffffff0c653
add r13, rax
imul rax, rdx, 0x215d1
imul rdx, rdx, 0xfffffffffff59083
add r14, rax
mov rax, rbp
sar rax, 0x15
add rdx, r15
add rdi, rax
shl rax, 0x15
sub rbp, rax
mov rax, rdi
sar rax, 0x15
mov word [rbx + 0x20], bp
add r10, rax
shl rax, 0x15
sub rdi, rax
mov rax, r10
sar rax, 0x15
add r13, rax
shl rax, 0x15
sub r10, rax
mov rax, r13
sar rax, 0x15
add r14, rax
shl rax, 0x15
sub r13, rax
mov rax, r14
sar rax, 0x15
add rdx, rax
shl rax, 0x15
sub r14, rax
mov rax, rdx
sar rax, 0x15
add r8, rax
shl rax, 0x15
sub rdx, rax
mov rax, r8
sar rax, 0x15
add r11, rax
shl rax, 0x15
sub r8, rax
mov rax, r11
sar rax, 0x15
add rcx, rax
shl rax, 0x15
sub r11, rax
mov rax, rcx
sar rax, 0x15
add rsi, rax
shl rax, 0x15
sub rcx, rax
mov rax, rsi
sar rax, 0x15
add r12, rax
shl rax, 0x15
sub rsi, rax
mov rax, r12
sar rax, 0x15
add r9, rax
shl rax, 0x15
sub r12, rax
mov rax, rdi
sar rbp, 0x10
shl rax, 5
or ebp, eax
mov rax, rdi
sar rax, 3
mov byte [rbx + 0x22], bpl
mov byte [rbx + 0x23], al
mov rax, rdi
sar rdi, 0x13
sar rax, 0xb
mov byte [rbx + 0x24], al
lea rax, [r10*4]
or edi, eax
mov rax, r10
sar r10, 0xe
sar rax, 6
mov byte [rbx + 0x25], dil
mov byte [rbx + 0x26], al
mov rax, r13
shl rax, 7
or r10d, eax
mov rax, r13
sar rax, 1
mov byte [rbx + 0x27], r10b
mov byte [rbx + 0x28], al
mov rax, r13
sar r13, 0x11
sar rax, 9
mov byte [rbx + 0x29], al
mov rax, r14
shl rax, 4
or r13d, eax
mov rax, r14
sar rax, 4
mov byte [rbx + 0x2a], r13b
mov byte [rbx + 0x2b], al
mov rax, r14
sar r14, 0x14
sar rax, 0xc
mov byte [rbx + 0x2c], al
lea rax, [rdx + rdx]
or r14d, eax
mov rax, rdx
sar rdx, 0xf
sar rax, 7
mov byte [rbx + 0x2d], r14b
mov byte [rbx + 0x2e], al
mov rax, r8
shl rax, 6
or edx, eax
mov rax, r8
sar rax, 2
mov byte [rbx + 0x2f], dl
mov edx, 0xd8
mov byte [rbx + 0x30], al
mov rax, r8
sar r8, 0x12
sar rax, 0xa
mov byte [rbx + 0x31], al
lea rax, [r11*8]
or r8d, eax
mov rax, r11
sar rax, 5
sar r11, 0xd
mov byte [rbx + 0x32], r8b
mov byte [rbx + 0x33], al
mov rax, rsi
mov byte [rbx + 0x34], r11b
shl rax, 5
mov word [rbx + 0x35], cx
sar rcx, 0x10
or ecx, eax
mov rax, rsi
sar rax, 3
mov byte [rbx + 0x37], cl
lea rcx, [rsp + 0x2c0]
mov byte [rbx + 0x38], al
mov rax, rsi
sar rsi, 0x13
sar rax, 0xb
mov byte [rbx + 0x39], al
lea rax, [r12*4]
or esi, eax
mov rax, r12
sar r12, 0xe
sar rax, 6
mov byte [rbx + 0x3a], sil
mov byte [rbx + 0x3b], al
mov rax, r9
shl rax, 7
or r12d, eax
mov rax, r9
sar rax, 1
mov byte [rbx + 0x3c], r12b
mov byte [rbx + 0x3d], al
mov rax, r9
sar r9, 0x11
sar rax, 9
mov byte [rbx + 0x3f], r9b
mov byte [rbx + 0x3e], al
call sym.OPENSSL_cleanse
lea rcx, [rsp + 0x1a0]
mov edx, 0x40
call sym.OPENSSL_cleanse
lea rcx, [rsp + 0x160]
mov edx, 0x40
call sym.OPENSSL_cleanse
mov eax, 1
add rsp, 0x3a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret