Function at 0x140087cc0
Capabilities:
Encrypt data using chaskey

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x358
mov rax, qword [rcx + 0x20]
mov rsi, qword [rcx + 0x10]
mov qword [rsp + 0x40], rax
mov rax, rcx
mov rbx, qword [rax + 0x30]
mov rax, qword [rax + 0x38]
mov qword [rsp + 0x3a0], rcx
mov qword [rsp + 0x3b8], r9
mov r9, qword [rcx + 0x18]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x3a0]
mov qword [rsp + 0x3a8], rdx
mov rcx, qword [rcx + 0x28]
mov rax, qword [rax + 0x40]
mov qword [rsp + 0x218], r9
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x3a0]
mov r14, qword [rax + 0x48]
mov r13, qword [rax + 0x50]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x3a0]
mov rax, qword [rax + 0x60]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x3a0]
mov rdi, qword [rax + 0x68]
mov rbp, qword [rax + 0x70]
mov rax, qword [rax + 0x78]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x3a0]
mov rax, qword [rax + 0x80]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x3a0]
mov r15, qword [rax + 0x88]
mov r12, qword [rax + 0x90]
mov qword [rsp + 0x48], rdi
mov rax, qword [rax + 0x98]
mov qword [rsp + 0x10], r13
mov qword [rsp + 8], r12
mov r11, qword [rsp + 0x3a8]
mov qword [rsp + 0x70], rax
mov rax, r8
shl rax, 7
mov qword [rsp + 0x20], r14
mov r14, qword [rsp + 0x3a0]
add rax, rdx
lea rdx, [rsp + 0x190]
mov qword [rsp + 0x18], r15
mov qword [rsp + 0x180], rax
lea rax, [rsp + 0x228]
mov r15, rdx
mov qword [rsp + 0x188], rax
nop dword [rax + rax]
mov rax, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x48]
mov qword [rsp + 0x230], rcx
mov r10, qword [rsp + 0x40]
mov r8, qword [rsp + 0x80]
mov qword [rsp + 0x238], rbx
mov qword [rsp + 0x260], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x270], rdi
mov rdi, qword [rsp + 0x70]
mov qword [rsp + 0x268], rax
mov rax, qword [rsp + 0x68]
mov r13, qword [rsp + 0x78]
add rsi, qword [rsp + 0x3b8]
mov qword [rsp + 0x228], r10
mov qword [rsp + 0x280], rax
mov rax, qword [rsp + 0x60]
mov rdx, rsi
mov qword [rsp + 0x210], rsi
mov rsi, qword [rsp + 0x20]
mov qword [rsp + 0x288], rax
mov rax, qword [rsp + 0x18]
mov r12, qword [rsp + 0x10]
mov qword [rsp + 0x250], rsi
mov qword [rsp + 0x290], rax
mov rax, qword [rsp + 8]
mov qword [rsp + 0x240], r8
mov qword [rsp + 0x298], rax
mov rax, r10
xor rax, rdi
mov qword [rsp + 0x248], r13
xor rax, rcx
mov qword [rsp + 0x278], rbp
xor rax, rbx
mov qword [rsp + 0x2a0], rdi
xor rax, r8
mov qword [rsp + 0x258], r12
xor rax, r13
xor rax, rsi
mov rsi, qword [rsp + 0x30]
xor rax, r12
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x48]
mov qword [rsp + 0x38], rdx
xor rax, rsi
mov rsi, qword [rsp + 0x68]
xor rax, r12
mov r12, qword [rsp + 0x60]
xor rax, rdi
movabs rdi, 0x1bd11bdaa9fc1a22
xor rax, rbp
xor rax, rsi
mov rsi, qword [rsp + 0x18]
xor rax, r12
mov r12, qword [rsp + 8]
xor rax, rsi
xor rax, r12
xor rdi, rax
mov rax, rdx
mov rdx, qword [r11 + 8]
xor rax, r9
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x220], rax
mov rax, qword [r11]
mov qword [r15 + 8], rdx
mov rdx, qword [r11 + 0x18]
mov qword [r15], rax
mov rsi, rax
mov rax, qword [r11 + 0x10]
mov qword [rsp + 0x2a8], rdi
add r10, rsi
mov qword [r15 + 0x10], rax
mov rdi, rax
mov qword [rsp + 0x168], rax
mov rax, qword [r11 + 0x20]
mov qword [r15 + 0x18], rdx
mov rdx, qword [r11 + 0x28]
mov qword [r15 + 0x20], rax
mov qword [rsp + 0xf8], rax
mov rax, qword [r11 + 0x30]
mov qword [r15 + 0x28], rdx
mov rdx, qword [r11 + 0x38]
mov qword [r15 + 0x30], rax
mov qword [rsp + 0x100], rax
mov rax, qword [r11 + 0x40]
mov qword [r15 + 0x38], rdx
mov rdx, qword [r11 + 0x48]
mov qword [rsp + 0x108], rax
mov qword [r15 + 0x40], rax
mov rax, qword [r11 + 0x50]
mov qword [rsp + 0xb8], r10
mov r10, qword [rsp + 0x198]
mov qword [r15 + 0x50], rax
mov qword [rsp + 0x110], rax
mov rax, qword [r11 + 0x60]
lea r12, [r10 + rcx]
mov qword [r15 + 0x48], rdx
mov rcx, qword [rsp + 0x1a8]
mov rdx, qword [r11 + 0x58]
mov qword [r15 + 0x60], rax
mov qword [rsp + 0x118], rax
mov rax, qword [r11 + 0x70]
mov qword [r15 + 0x58], rdx
mov rdx, qword [r11 + 0x68]
mov qword [r15 + 0x70], rax
mov qword [rsp + 0x120], rax
lea rax, [rcx + r8]
mov qword [rsp + 0x130], rcx
mov rcx, qword [rsp + 0xf8]
mov qword [r15 + 0x68], rdx
mov rdx, qword [r11 + 0x78]
lea r8, [rcx + r13]
mov qword [rsp + 0x128], r10
lea r10, [rdi + rbx]
mov rcx, qword [rsp + 0x1b8]
mov rbx, qword [rsp + 0x20]
mov qword [r15 + 0x78], rdx
mov qword [rsp + 0x138], rcx
lea rdx, [rcx + rbx]
mov rcx, qword [rsp + 0x100]
mov rbx, qword [rsp + 0x10]
mov qword [rsp + 0x98], r10
mov qword [rsp + 0xa0], r8
lea r13, [rcx + rbx]
mov rcx, qword [rsp + 0x1c8]
mov qword [rsp + 0xc0], r13
mov qword [rsp + 0x140], rcx
mov rbx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x70]
mov qword [rsp + 0x3a0], r14
lea r13, [rcx + rbx]
mov rcx, qword [rsp + 0x108]
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0x3a8], r11
mov qword [rsp + 0x88], 1
mov r14, qword [rsp + 0xa0]
lea r10, [rcx + rbx]
mov rcx, qword [rsp + 0x1d8]
mov rbx, qword [rsp + 0x68]
mov qword [rsp + 0xc8], r10
mov qword [rsp + 0x148], rcx
add r8, rcx
mov rcx, qword [rsp + 0x110]
add rbp, rcx
mov rcx, qword [rsp + 0x1e8]
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0x150], rcx
lea r10, [rcx + rbx]
mov rbx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x118]
add rcx, rbx
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xd8], rcx
mov rcx, qword [rsp + 0x1f8]
mov qword [rsp + 0x158], rcx
add rcx, rbx
mov rbx, qword [rsp + 0x38]
lea rbp, [rcx + rbx]
mov rbx, qword [rsp + 8]
mov r11, rbp
lea rcx, [rbx + r9]
mov rbx, qword [rsp + 0x120]
add rbx, rcx
mov rcx, qword [rsp + 0x208]
lea r9, [rcx + rdi]
mov rdi, qword [rsp + 0x218]
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsp + 0x188]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x170], r15
mov r15, qword [rsp + 0x98]
mov qword [rsp + 0x178], rsi
jmp 0x140088219
mov rsi, qword [rsp + 0xa8]
mov qword [rsp + 0x58], rcx
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x30], rsi
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x40], rsi
mov rsi, qword [rsp + 0x98]
mov qword [rsp + 0x50], rsi
mov rbp, qword [rsp + 0xb8]
add rbx, r9
add r14, rdx
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
rol rdx, 8
ror r9, 0x1b
add rbp, r12
add rdi, r8
rol r12, 0x18
xor rdx, r14
rol r8, 8
xor r12, rbp
add rsi, r10
add rcx, r11
rol r10, 0x11
xor r8, rdi
rol r11, 0x16
xor r9, rbx
mov qword [rsp + 0x98], r12
add rbp, r8
lea r12, [rax + r15]
ror r8, 0x1a
xor r8, rbp
xor r10, rsi
xor r11, rcx
rol rax, 0xd
mov r15, qword [rsp + 0xc0]
mov qword [rsp + 0xa0], r8
xor rax, r12
add r12, r11
mov r8, qword [rsp + 0x98]
rol r11, 0x13
add r15, r13
ror r13, 0x11
xor r11, r12
xor r13, r15
add r15, r10
rol r10, 0xa
xor r10, r15
add r14, r9
add rsi, r13
add rcx, rax
ror r9, 9
add rbx, rdx
add rdi, r8
ror r13, 0xf
rol rax, 0x12
rol rdx, 0x17
xor r9, r14
xor r13, rsi
ror r8, 0xc
xor rax, rcx
xor rdx, rbx
add rbp, r13
xor r8, rdi
add r12, rdx
add r14, rax
add rcx, r9
ror r13, 0x1f
add r15, r8
add rbx, r11
rol rdx, 4
ror rax, 0xd
rol r8, 0xd
xor r13, rbp
xor rdx, r12
ror r9, 0x1e
ror r11, 0x17
xor rax, r14
xor r8, r15
xor r9, rcx
xor r11, rbx
add rbx, r8
ror r8, 0x11
add r15, r11
ror r11, 0x10
add rbp, r9
xor r8, rbx
xor r11, r15
mov qword [rsp + 0x98], r13
rol r9, 5
add rdi, r10
mov r13, qword [rsp + 0xa0]
mov qword [rsp + 0xc0], r11
xor r9, rbp
ror r10, 5
mov r11, qword [rsp + 0x98]
mov qword [rsp + 0xb8], r9
mov r9, r8
xor r10, rdi
add rsi, r13
rol r13, 0x11
add r12, r10
add rdi, rdx
rol r10, 0x14
add rcx, r11
rol r11, 0x19
xor r13, rsi
mov r8, r11
add rsi, rax
mov r11, qword [rsp + 0x48]
rol rax, 0x10
xor rax, rsi
add r14, r13
rol rdx, 0x1c
xor r10, r12
mov qword [rsp + 0xa8], rax
mov rax, qword [r11 + 8]
ror r13, 0x17
xor rdx, rdi
xor r13, r14
xor r8, rcx
add rbp, rax
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xc8], rbp
mov rbp, qword [r11 + 0x10]
mov qword [rsp + 0xa0], rbp
add rbp, r9
mov r9, qword [rsp + 0x80]
add r12, r9
mov r9, qword [rsp + 0x78]
add rax, r9
mov r9, qword [rsp + 0x20]
add r14, r9
mov r9, qword [rsp + 0x10]
add rdx, r9
mov r9, qword [rsp + 0x30]
add r14, rdx
ror rdx, 0x1b
add r15, r9
xor rdx, r14
mov qword [rsp + 0xd0], r15
mov r15, qword [rsp + 0x28]
add r8, r15
mov r15, r11
mov r11, qword [r11 + 0x48]
add rdi, r11
mov qword [rsp + 0xa8], r11
mov r11, qword [r15 + 0x50]
lea r9, [r11 + r13]
mov qword [rsp + 0xb0], r11
mov r13, qword [rsp + 0x68]
add rsi, r13
mov r13, qword [rsp + 0x58]
mov qword [rsp + 0xd8], rsi
mov rsi, qword [rsp + 0x60]
lea r11, [r10 + rsi]
mov rsi, qword [rsp + 0x18]
add rcx, rsi
mov rsi, qword [rsp + 0x70]
mov qword [rsp + 0xf0], rcx
mov rcx, qword [rsp + 8]
lea r10, [rcx + r13]
mov rcx, qword [rsp + 0xc0]
add r10, rcx
mov rcx, qword [rsp + 0x88]
lea r13, [rcx + 1]
mov qword [rsp + 0xe0], r13
mov r13, qword [rsp + 0x90]
add rsi, r13
mov r13, qword [rsp + 0xb8]
mov qword [rsp + 0xe8], rsi
add rsi, rbx
mov rbx, qword [rsp + 0x50]
add rbx, rcx
add rcx, 2
add rbx, r13
mov r13, qword [rsp + 0x40]
mov qword [rsp + 0x88], rcx
mov rcx, qword [rsp + 0xc8]
mov qword [r15 + 0x88], r13
mov r13, qword [rsp + 0x38]
add rcx, rbp
ror rbp, 0x17
mov qword [r15], r13
lea r13, [rdi + r9]
xor rbp, rcx
lea r15, [r12 + rax]
mov rdi, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xd0]
rol r9, 0xc
rol rax, 9
mov qword [rsp + 0xb8], rbp
xor r9, r13
xor rax, r15
lea rbp, [rdi + r11]
mov rdi, qword [rsp + 0xf0]
add r12, r8
ror r11, 0x11
rol r8, 0x1f
xor r11, rbp
xor r8, r12
add rdi, r10
ror r10, 0x14
add rcx, r9
rol r9, 0x10
add rsi, rbx
add rbp, r8
rol rbx, 0x1e
xor r9, rcx
rol r8, 4
xor rbx, rsi
xor r10, rdi
xor r8, rbp
add r12, r11
add r14, rbx
add rsi, rdx
add rcx, r8
ror r11, 8
add rdi, rax
add r15, r10
mov qword [rsp + 0xc0], r9
ror rbx, 0xd
ror rdx, 0x16
xor r11, r12
rol r8, 0x1f
xor rbx, r14
xor rdx, rsi
ror r10, 0x1e
mov r9, qword [rsp + 0xb8]
xor r8, rcx
ror rax, 0xb
xor r10, r15
xor rax, rdi
mov qword [rsp + 0xb8], r8
mov r8, qword [rsp + 0xc0]
add r13, r9
ror r9, 0x17
xor r9, r13
add r15, rdx
add r13, r11
add rdi, rbx
ror r11, 0x14
rol rbx, 0x13
add rsi, r10
add r12, r9
xor rbx, rdi
xor r11, r13
ror rdx, 0x14
add rbp, r8
ror r10, 0x16
xor rdx, r15
add rcx, rbx
add r15, r11
rol rbx, 9
xor r10, rsi
ror r11, 0x10
add r14, rax
ror r9, 0x12
rol r8, 0x19
mov qword [rsp + 0xf0], rbx
mov rbx, r11
xor r8, rbp
lea r11, [r12 + r10]
xor r9, r12
ror rax, 0x11
xor rax, r14
ror r10, 0x1d
add r14, r8
xor rbx, r15
mov r12, qword [rsp + 0xb8]
ror r8, 0xc
xor r10, r11
add rsi, r9
xor r8, r14
rol r9, 0x17
mov qword [rsp + 0xd8], rbx
mov rbx, r10
add rdi, r12
rol r12, 0x14
lea r10, [rdx + r13]
xor r9, rsi
mov r13, r12
mov r12, qword [rsp + 0xa0]
add rbp, rax
ror rax, 0x1b
xor rax, rbp
rol rdx, 0x1f
xor r13, rdi
add r12, rcx
xor rdx, r10
mov qword [rsp + 0xb8], r12
mov r12, qword [rsp + 0x80]
add r12, r9
mov r9, qword [rsp + 0x78]
add r15, r9
mov r9, qword [rsp + 0x20]
add rax, r9
mov r9, qword [rsp + 0x10]
add r14, r9
mov r9, qword [rsp + 0x30]
add rdx, r9
mov r9, qword [rsp + 0x28]
add r9, r11
mov r11, qword [rsp + 0xa8]
mov qword [rsp + 0xc0], r9
add r13, r11
mov r11, qword [rsp + 0xb0]
add r10, r11
mov r11, qword [rsp + 0xd8]
mov qword [rsp + 0xc8], r10
mov r10, qword [rsp + 0x68]
add r8, r10
mov r10, qword [rsp + 0x60]
add r10, rbp
mov rbp, qword [rsp + 0x38]
mov qword [rsp + 0xd0], r10
mov r10, qword [rsp + 0x18]
add r10, r11
mov r11, qword [rsp + 8]
add r11, rdi
mov rdi, qword [rsp + 0xf0]
mov qword [rsp + 0xd8], r11
mov r11, qword [rsp + 0xe8]
xor rcx, rdi
mov rdi, qword [rsp + 0xe0]
add r11, rbx
mov rbx, qword [rsp + 0x50]
lea r9, [rbx + rbp]
mov rbp, qword [rsp + 0x98]
lea rbx, [r9 + rsi]
mov rsi, qword [rsp + 0x58]
lea r9, [rcx + rdi]
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov qword [rdi + 8], rsi
mov rsi, qword [rsp + 8]
add rdi, 0x10
mov qword [rdi + 0x80], rbp
add r9, rcx
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x60], rsi
mov rbp, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x50]
mov qword [rsp + 0x78], rbp
mov rbp, qword [rsp + 0x28]
mov qword [rsp + 0x80], rdi
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x10], rbp
mov rbp, qword [rsp + 0x18]
mov qword [rsp + 0x20], rdi
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0x68], rbp
mov rbp, qword [rsp + 0x70]
cmp qword [rsp + 0x88], 0x15
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 8], rsi
mov qword [rsp + 0x18], rbp
mov rbp, qword [rsp + 0x40]
mov qword [rsp + 0x70], rbp
mov rbp, qword [rsp + 0x90]
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x38], rbp
jne 0x1400881e0
mov qword [rsp + 0x38], rbx
mov rdi, r15
mov rbx, qword [rsp + 0x168]
mov rbp, r14
mov r14, qword [rsp + 0x3a0]
mov rsi, qword [rsp + 0x178]
mov qword [rsp + 8], r11
xor rbx, rdi
mov rdi, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xb8]
mov r11, qword [rsp + 0x3a8]
mov qword [r14 + 0x30], rbx
xor rdi, rax
mov rax, qword [rsp + 0xf8]
xor rcx, rsi
mov r15, qword [rsp + 0x170]
mov qword [rsp + 0x40], rcx
sub r11, 0xffffffffffffff80
xor rax, rbp
mov qword [r14 + 0x20], rcx
mov rcx, qword [rsp + 0x128]
mov qword [rsp + 0x78], rax
mov qword [r14 + 0x40], rax
mov rax, qword [rsp + 0x138]
xor rcx, r12
mov qword [rsp + 0x80], rdi
xor rax, rdx
mov rdx, qword [rsp + 0xc0]
mov qword [r14 + 0x38], rdi
mov qword [rsp + 0x20], rax
mov qword [r14 + 0x48], rax
mov rax, qword [rsp + 0x100]
mov qword [r14 + 0x28], rcx
xor rax, rdx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x10], rax
mov qword [r14 + 0x50], rax
mov rax, qword [rsp + 0x140]
xor rax, r13
mov qword [rsp + 0x30], rax
mov qword [r14 + 0x58], rax
mov rax, qword [rsp + 0x108]
xor rax, rdx
mov qword [rsp + 0x28], rax
mov qword [r14 + 0x60], rax
mov rax, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0x110]
mov rdx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0x148]
mov rsi, qword [rsp + 0x210]
xor rbp, rax
mov rax, qword [rsp + 0x150]
xor rdi, r8
mov qword [r14 + 0x70], rbp
xor rax, r10
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x68], rax
mov qword [r14 + 0x78], rax
mov rax, qword [rsp + 0x118]
mov qword [r14 + 0x68], rdi
xor rax, rdx
mov rdx, qword [rsp + 8]
mov qword [rsp + 0x60], rax
mov qword [r14 + 0x80], rax
mov rax, qword [rsp + 0x158]
xor rax, rdx
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x18], rax
mov qword [r14 + 0x88], rax
mov rax, qword [rsp + 0x120]
xor rax, rdx
mov qword [rsp + 8], rax
mov qword [r14 + 0x90], rax
mov rax, qword [rsp + 0x160]
xor rax, r9
movabs r9, 0xbfffffffffffffff
and r9, qword [rsp + 0x218]
mov qword [rsp + 0x70], rax
mov qword [r14 + 0x98], rax
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x218], r9
cmp r11, rax
jne 0x140087e00
mov qword [r14 + 0x10], rsi
mov qword [r14 + 0x18], r9
add rsp, 0x358
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret