Function at 0x1401e5550
Capabilities:
Encrypt data using chaskey

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
mov r14d, r8d
mov rdi, rdx
mov rbx, rcx
test rcx, rcx
je 0x1401e5c5f
test rdx, rdx
je 0x1401e5c5f
cmp qword [rcx + 8], 0
jne 0x1401e558d
test r8d, r8d
je 0x1401e5c5f
mov rsi, qword [rcx]
test rsi, rsi
je 0x1401e559d
mov rcx, rsi
call fcn.14017b040
mov ebp, 1
mov rcx, rdi
mov edx, ebp
call fcn.1401e00c0
test eax, eax
js 0x1401e5c64
movzx eax, word [rbx + 0x3b4]
mov qword [rbx], rdi
test al, 6
jne 0x1401e55d3
test al, 8
jne 0x1401e55d3
mov rax, qword [rdi]
movzx ecx, word [rax]
mov word [rbx + 0x3b8], cx
mov edx, dword [rdi + 0xf8]
movzx eax, word [rbx + 0x4ec]
mov dword [rbx + 0x4e8], edx
xor ax, word [rdi + 0xee]
and ax, bp
xor word [rbx + 0x4ec], ax
movzx eax, word [rbx + 0x4ec]
movzx ecx, word [rdi + 0xee]
xor cx, ax
and cx, 2
xor cx, ax
movzx eax, byte [rbx + 0x3b9]
mov word [rbx + 0x4ec], cx
cmp al, 4
jne 0x1401e563d
bt edx, 0x1d
jae 0x1401e563d
mov rax, qword [rdi]
cmp byte [rax + 3], 0
je 0x1401e56cb
mov byte [rbx + 0x3b9], 3
mov al, 3
cmp al, 3
jne 0x1401e5659
bt edx, 0x1b
jae 0x1401e5659
mov rax, qword [rdi]
cmp byte [rax + 3], 0
je 0x1401e56cb
mov byte [rbx + 0x3b9], 2
mov al, 2
mov ecx, 0xfffe
cmp al, 2
jne 0x1401e5683
bt edx, 0x1a
jae 0x1401e5683
mov rax, qword [rdi]
cmp byte [rax + 3], 0
je 0x1401e56cb
and word [rbx + 0x4fa], cx
movzx eax, bpl
mov byte [rbx + 0x3b9], bpl
cmp al, bpl
jne 0x1401e56b9
movzx eax, bpl
bt edx, 0xd
jae 0x1401e56c3
mov rax, qword [rdi]
cmp byte [rax + 3], 0
je 0x1401e56cb
and word [rbx + 0x4fa], cx
mov eax, 0x7fff
and word [rbx + 0x4f8], ax
xor al, al
mov byte [rbx + 0x3b9], 0
jmp 0x1401e56bd
test al, al
jne 0x1401e56c3
bt edx, 0xc
jb 0x1401e56cb
cmp al, byte [rbx + 0x507]
jae 0x1401e56d5
mov eax, 0xfffffeba
jmp 0x1401e5c64
movzx eax, word [rdi + 0x188]
mov word [rbx + 0x5e8], ax
mov eax, dword [rdi + 0x184]
mov dword [rbx + 0x5c0], eax
mov eax, dword [rdi + 0x18c]
mov dword [rbx + 0x5ec], eax
mov rax, qword [rdi + 0x130]
mov qword [rbx + 0x520], rax
mov eax, dword [rdi + 0x180]
mov dword [rbx + 0x3a4], eax
mov rax, qword [rdi + 0x150]
mov qword [rbx + 0xa0], rax
mov qword [rsp + 0x40], r15
test rsi, rsi
je 0x1401e573f
mov rax, qword [rdi]
cmp byte [rax + 2], 3
jne 0x1401e573f
movzx edx, word [rbx + 0x4f8]
jmp 0x1401e5769
mov rax, qword [rdi]
movzx ecx, byte [rax + 2]
movzx eax, word [rbx + 0x4f8]
and cl, 3
movzx edx, cl
mov ecx, 0xff9f
and ax, cx
shl dx, 5
or dx, ax
mov word [rbx + 0x4f8], dx
mov rax, qword [rdi]
mov r9d, 0xf7ff
and dx, r9w
mov r11d, 0xfeff
mov esi, 0xfbff
mov r15d, 0xfdff
movzx ecx, byte [rax + 3]
and cl, bpl
movzx r8d, cl
shl r8w, 0xb
or r8w, dx
mov word [rbx + 0x4f8], r8w
movzx eax, byte [rdi + 0xe4]
mov byte [rbx + 0x507], al
movzx eax, byte [rdi + 0xe2]
and al, bpl
movzx edx, al
movzx eax, word [rbx + 0x4fa]
and ax, r11w
shl dx, 8
or dx, ax
mov word [rbx + 0x4fa], dx
and dx, si
movzx eax, byte [rdi + 0xe2]
shr al, 2
and al, bpl
movzx ecx, al
shl cx, 0xa
or cx, dx
mov word [rbx + 0x4fa], cx
and cx, r9w
movzx eax, byte [rdi + 0xe2]
shr al, 3
and al, bpl
movzx edx, al
shl dx, 0xb
or dx, cx
mov word [rbx + 0x4fa], dx
and dx, r15w
movzx eax, byte [rdi + 0xe2]
shr al, 1
and al, bpl
movzx ecx, al
shl cx, 9
or cx, dx
mov word [rbx + 0x4fa], cx
movzx eax, byte [rdi + 0xe2]
shr al, 5
and al, bpl
movzx edx, al
mov eax, 0xefff
and cx, ax
shl dx, 0xc
or dx, cx
mov word [rbx + 0x4fa], dx
movzx eax, byte [rdi + 0xe2]
shr al, 4
and al, bpl
movzx ecx, al
mov eax, 0xdfff
and dx, ax
shl cx, 0xd
or cx, dx
mov word [rbx + 0x4fa], cx
movzx eax, word [rdi + 0xf0]
mov word [rbx + 0x50e], ax
movzx eax, word [rdi + 0xf2]
mov word [rbx + 0x510], ax
movzx eax, word [rdi + 0xf4]
mov word [rbx + 0x514], ax
movzx eax, word [rdi + 0xf6]
mov word [rbx + 0x516], ax
movzx eax, byte [rdi + 0xe0]
mov byte [rbx + 0x518], al
movzx eax, byte [rdi + 0xe1]
shr al, 4
and al, bpl
movzx edx, al
mov eax, 0xfff7
shl dx, 3
and r8w, ax
or dx, r8w
mov r9d, 0xffef
mov word [rbx + 0x4f8], dx
mov r10d, 0xff7f
movzx eax, byte [rdi + 0xe1]
and dx, r9w
shr al, 5
and al, bpl
movzx ecx, al
shl cx, 4
or cx, dx
mov word [rbx + 0x4f8], cx
and cx, r10w
movzx eax, byte [rdi + 0xe1]
and al, bpl
movzx edx, al
shl dx, 7
or dx, cx
mov word [rbx + 0x4f8], dx
and dx, r11w
movzx eax, byte [rdi + 0xe1]
shr al, 1
and al, bpl
movzx ecx, al
shl cx, 8
or cx, dx
mov word [rbx + 0x4f8], cx
and cx, r15w
movzx eax, byte [rdi + 0xe1]
shr al, 2
and al, bpl
movzx r8d, al
shl r8w, 9
or r8w, cx
mov word [rbx + 0x4f8], r8w
and r8w, si
movzx eax, byte [rdi + 0xe1]
shr al, 3
and al, bpl
movzx edx, al
shl dx, 0xa
or dx, r8w
mov word [rbx + 0x4f8], dx
movzx eax, byte [rdi + 0xe1]
shr al, 6
movzx ecx, al
mov eax, 0xfff9
and dx, ax
add cx, cx
or cx, dx
mov word [rbx + 0x4f8], cx
movzx eax, byte [rdi + 0xe2]
shr al, 6
and al, bpl
movzx ecx, al
movzx eax, word [rbx + 0x4fc]
and ax, r9w
shl cx, 4
or cx, ax
mov word [rbx + 0x4fc], cx
movzx eax, byte [rdi + 0xe3]
and al, bpl
movzx edx, al
mov eax, 0xffdf
and cx, ax
shl dx, 5
or dx, cx
mov word [rbx + 0x4fc], dx
and dx, r10w
movzx eax, byte [rdi + 0xe3]
shr al, 1
and al, bpl
movzx ecx, al
shl cx, 7
or cx, dx
mov word [rbx + 0x4fc], cx
movzx eax, byte [rdi + 0xec]
shr al, 3
and al, bpl
movzx ecx, al
shl cx, 9
movzx eax, word [rbx + 0x4fe]
and ax, r15w
mov r15, qword [rsp + 0x40]
or cx, ax
mov word [rbx + 0x4fe], cx
movups xmm0, xmmword [rdi + 0x38]
movups xmmword [rbx + 0x2f0], xmm0
movups xmm0, xmmword [rdi + 0x48]
movups xmmword [rbx + 0x300], xmm0
mov rax, qword [rdi + 0x58]
mov qword [rbx + 0x338], rax
mov rax, qword [rdi + 0x60]
mov qword [rbx + 0x358], rax
mov eax, dword [rdi + 0x90]
mov dword [rbx + 0x360], eax
mov rax, qword [rdi + 0x98]
mov qword [rbx + 0x340], rax
movzx eax, byte [rbx + 0x348]
xor al, byte [rdi + 0xa0]
and al, 0x3f
xor byte [rbx + 0x348], al
movzx eax, byte [rbx + 0x348]
movzx ecx, al
xor cl, byte [rdi + 0xa0]
and cl, 0x40
xor cl, al
mov byte [rbx + 0x348], cl
xor cl, byte [rdi + 0xa0]
and cl, 0x7f
xor cl, byte [rdi + 0xa0]
mov byte [rbx + 0x348], cl
mov eax, dword [rdi + 0xa4]
mov dword [rbx + 0x34c], eax
mov eax, dword [rdi + 0xa8]
mov dword [rbx + 0x350], eax
test r14d, r14d
jne 0x1401e5bef
mov rax, qword [rdi + 0xd0]
mov r9, qword [rbx + 8]
test rax, rax
je 0x1401e5bc8
lea ecx, [r14 + 2]
nop dword [rax + rax]
lea r9, [r9 + 0x80]
movups xmm0, xmmword [rax]
lea rax, [rax + 0x80]
movups xmmword [r9 - 0x80], xmm0
movups xmm1, xmmword [rax - 0x70]
movups xmmword [r9 - 0x70], xmm1
movups xmm0, xmmword [rax - 0x60]
movups xmmword [r9 - 0x60], xmm0
movups xmm1, xmmword [rax - 0x50]
movups xmmword [r9 - 0x50], xmm1
movups xmm0, xmmword [rax - 0x40]
movups xmmword [r9 - 0x40], xmm0
movups xmm1, xmmword [rax - 0x30]
movups xmmword [r9 - 0x30], xmm1
movups xmm0, xmmword [rax - 0x20]
movups xmmword [r9 - 0x20], xmm0
movups xmm1, xmmword [rax - 0x10]
movups xmmword [r9 - 0x10], xmm1
sub rcx, rbp
jne 0x1401e5b30
movups xmm0, xmmword [rax]
movups xmmword [r9], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r9 + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [r9 + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [r9 + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [r9 + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [r9 + 0x50], xmm1
mov rcx, qword [rax + 0x60]
mov qword [r9 + 0x60], rcx
jmp 0x1401e5bd8
xor edx, edx
mov r8d, 0x168
mov rcx, r9
call fcn.140285450
movzx eax, byte [rbx + 0x4f8]
and al, 0x60
cmp al, 0x60
je 0x1401e5bef
mov rcx, rbx
call fcn.1401dce80
mov ebp, eax
mov edx, dword [rdi + 0xf8]
test edx, edx
je 0x1401e5c05
mov rcx, rbx
call fcn.140180860
test eax, eax
je 0x1401e5c5f
movzx eax, byte [rdi + 0x870]
mov byte [rbx + 0x56c], al
lea rax, [0x140206e20]
cmp qword [rbx + 0xb8], rax
je 0x1401e5c30
mov rax, qword [rdi + 0x140]
mov qword [rbx + 0xb8], rax
lea rax, [0x140206ef0]
cmp qword [rbx + 0xc0], rax
je 0x1401e5c4e
mov rax, qword [rdi + 0x148]
mov qword [rbx + 0xc0], rax
movzx eax, byte [rdi + 0xe0]
mov byte [rbx + 0x3ae], al
mov eax, ebp
jmp 0x1401e5c64
mov eax, 0xffffff53
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret