Function at 0x1400fadf0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rdi
sub rsp, 0xb8
mov rbx, r9
mov r9, rdx
mov rdi, r8
cmp rdx, 0x40
ja 0x1400fae54
call fcn.1400fa640
sub rax, rdi
movabs rdx, 0x9ddfea08eb382d69
xor rax, rbx
imul rax, rdx
mov rcx, rax
shr rcx, 0x2f
xor rcx, rax
xor rcx, rbx
imul rcx, rdx
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
imul rax, rdx
add rsp, 0xb8
pop rdi
pop rbx
ret
mov qword [rsp + 0xd0], rbp
movabs r10, 0x9ae16a3b2f90404f
mov qword [rsp + 0xb0], rsi
mov r8, rbx
mov qword [rsp + 0xa8], r12
mov rdx, rdi
imul r8, r10
imul rdx, r10
mov qword [rsp + 0xa0], r13
add r8, 0x71
mov qword [rsp + 0x98], r14
mov r13, rdi
mov rax, r8
mov qword [rsp + 0x90], r15
imul rax, r10
mov r12, rax
shr r12, 0x2f
xor r12, rax
xor eax, eax
mov qword [rsp + 0x58], rax
mov r14d, eax
imul r12, r10
movabs rax, 0x651e95c4d06fbfb1
sub r13, r12
mov r11, r13
and r11d, 0x82
sub r11, rax
lea rax, [r9 - 1]
mov rbp, rax
mov qword [rsp + 0x68], r11
and eax, 0x3f
and rbp, 0xffffffffffffffc0
add rbp, rcx
mov qword [rsp + 0x80], rax
lea r10, [rax - 0x3f]
add r10, rbp
lea rax, [rcx + 2]
mov qword [rsp + 0x70], r10
nop word [rax + rax]
movzx ecx, byte [rax - 2]
mov byte [rsp + 0x20], cl
movzx ecx, byte [rax - 1]
mov byte [rsp + 0x21], cl
movzx ecx, byte [rax]
mov byte [rsp + 0x22], cl
movzx ecx, byte [rax + 1]
mov byte [rsp + 0x23], cl
movzx ecx, byte [rax + 2]
mov byte [rsp + 0x24], cl
movzx ecx, byte [rax + 3]
mov byte [rsp + 0x25], cl
movzx ecx, byte [rax + 4]
mov byte [rsp + 0x26], cl
movzx ecx, byte [rax + 5]
mov byte [rsp + 0x27], cl
movzx ecx, byte [rax + 6]
mov byte [rsp + 0x28], cl
movzx ecx, byte [rax + 7]
mov byte [rsp + 0x29], cl
movzx ecx, byte [rax + 8]
mov byte [rsp + 0x2a], cl
movzx ecx, byte [rax + 9]
mov byte [rsp + 0x2b], cl
movzx ecx, byte [rax + 0xa]
mov byte [rsp + 0x2c], cl
movzx ecx, byte [rax + 0xb]
mov byte [rsp + 0x2d], cl
movzx ecx, byte [rax + 0xc]
mov byte [rsp + 0x2e], cl
movzx ecx, byte [rax + 0xd]
mov byte [rsp + 0x2f], cl
movzx ecx, byte [rax + 0xe]
mov byte [rsp + 0x38], cl
movzx ecx, byte [rax + 0xf]
mov byte [rsp + 0x39], cl
movzx ecx, byte [rax + 0x10]
mov byte [rsp + 0x3a], cl
movzx ecx, byte [rax + 0x11]
mov byte [rsp + 0x3b], cl
movzx ecx, byte [rax + 0x12]
mov byte [rsp + 0x3c], cl
movzx ecx, byte [rax + 0x13]
mov byte [rsp + 0x3d], cl
movzx ecx, byte [rax + 0x14]
mov byte [rsp + 0x3e], cl
movzx ecx, byte [rax + 0x15]
mov byte [rsp + 0x3f], cl
movzx ecx, byte [rax + 0x16]
mov byte [rsp + 0x30], cl
movzx ecx, byte [rax + 0x17]
mov byte [rsp + 0x31], cl
movzx ecx, byte [rax + 0x18]
mov byte [rsp + 0x32], cl
movzx ecx, byte [rax + 0x19]
mov byte [rsp + 0x33], cl
movzx ecx, byte [rax + 0x1a]
mov byte [rsp + 0x34], cl
movzx ecx, byte [rax + 0x1b]
mov byte [rsp + 0x35], cl
movzx ecx, byte [rax + 0x1c]
mov byte [rsp + 0x36], cl
movzx ecx, byte [rax + 0x1d]
mov byte [rsp + 0x37], cl
movzx ecx, byte [rax + 0x1e]
mov byte [rsp + 0x40], cl
movzx ecx, byte [rax + 0x1f]
mov byte [rsp + 0x41], cl
movzx ecx, byte [rax + 0x20]
mov byte [rsp + 0x42], cl
movzx ecx, byte [rax + 0x21]
mov byte [rsp + 0x43], cl
movzx ecx, byte [rax + 0x22]
mov byte [rsp + 0x44], cl
movzx ecx, byte [rax + 0x23]
mov byte [rsp + 0x45], cl
movzx ecx, byte [rax + 0x24]
mov byte [rsp + 0x46], cl
movzx ecx, byte [rax + 0x25]
mov byte [rsp + 0x47], cl
movzx ecx, byte [rax + 0x26]
mov byte [rsp + 0x48], cl
movzx ecx, byte [rax + 0x27]
mov r9, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
mov byte [rsp + 0x49], cl
movzx ecx, byte [rax + 0x28]
mov r15, qword [rsp + 0x20]
lea rsi, [r9 + r12]
mov byte [rsp + 0x4a], cl
movzx ecx, byte [rax + 0x29]
mov r10, qword [rsp + 0xe0]
mov byte [rsp + 0x4b], cl
movzx ecx, byte [rax + 0x2a]
mov byte [rsp + 0x4c], cl
movzx ecx, byte [rax + 0x2b]
mov byte [rsp + 0x4d], cl
movzx ecx, byte [rax + 0x2c]
mov byte [rsp + 0x4e], cl
movzx ecx, byte [rax + 0x2d]
mov byte [rsp + 0x4f], cl
movzx ecx, byte [rax + 0x2e]
mov byte [rsp + 0x50], cl
movzx ecx, byte [rax + 0x2f]
mov byte [rsp + 0x51], cl
movzx ecx, byte [rax + 0x30]
mov byte [rsp + 0x52], cl
movzx ecx, byte [rax + 0x31]
mov byte [rsp + 0x53], cl
movzx ecx, byte [rax + 0x32]
mov byte [rsp + 0x54], cl
movzx ecx, byte [rax + 0x33]
mov byte [rsp + 0x55], cl
movzx ecx, byte [rax + 0x34]
mov byte [rsp + 0x56], cl
movzx ecx, byte [rax + 0x35]
mov byte [rsp + 0x57], cl
movzx ecx, byte [rax + 0x36]
mov byte [rsp + 0xd8], cl
movzx ecx, byte [rax + 0x37]
mov byte [rsp + 0xd9], cl
movzx ecx, byte [rax + 0x38]
mov byte [rsp + 0xda], cl
movzx ecx, byte [rax + 0x39]
mov byte [rsp + 0xdb], cl
movzx ecx, byte [rax + 0x3a]
mov byte [rsp + 0xdc], cl
movzx ecx, byte [rax + 0x3b]
mov byte [rsp + 0xdd], cl
movzx ecx, byte [rax + 0x3c]
mov byte [rsp + 0xde], cl
movzx ecx, byte [rax + 0x3d]
mov byte [rsp + 0xdf], cl
lea rcx, [r15 + rbx]
add r14, qword [rsp + 0xd8]
add rcx, rdx
mov rdx, qword [rsp + 0x38]
ror rcx, 0x1a
imul rsi, r11
lea r12, [rdx + r8]
mov r8, qword [rsp + 0x40]
lea rcx, [rcx + rcx*8]
ror rsi, 0x20
mov qword [rsp + 0x60], rcx
add r10, r8
mov rcx, qword [rsp + 0x58]
add rsi, r14
rol r10, 0x1f
add r10, rdx
ror r12, 0x1d
mov rdx, qword [rsp + 0xe8]
add rdx, qword [rsp + 0x48]
add rdx, rbx
ror rdx, 0x1e
add rdx, r9
mov r9, qword [rsp + 0x50]
add rcx, r9
xor rcx, qword [rsp + 0x60]
mov qword [rsp + 0x58], rcx
lea rcx, [r8 + rcx*8]
add qword [rsp + 0x58], rcx
mov rcx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x68]
lea r8, [r10 + r13]
add r8, qword [rsp + 0xd8]
lea r13, [r9 + rsi*8]
sub r14, r8
lea rax, [rax + 0x40]
add rcx, rbx
add r14, r9
add r14, qword [rsp + 0x48]
sub r10, r8
add r14, rsi
add r13, rsi
add r14, rcx
add r13, r15
lea rdi, [r10 + rcx]
mov r10, qword [rsp + 0x58]
add rcx, r14
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0x60], rcx
lea rcx, [rax - 2]
rol r14, 0x1e
lea rbx, [r10 + rdx]
mov rdx, qword [rsp + 0x60]
add r10, rbx
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0x58], r10
cmp rcx, rbp
jne 0x1400faf10
mov rdx, qword [rsp + 0x70]
lea rax, [r8 + r13*8]
add r10, qword [rsp + 0x80]
add r13, rax
ror rdi, 0x14
add r8, r13
mov rbp, rdi
mov qword [rsp + 0x58], r14
sub rbp, qword [rsp + 0x60]
mov r14, r11
movzx eax, byte [rdx + 8]
mov r15, qword [rsp + 0x58]
mov byte [rsp + 0xd8], al
movzx eax, byte [rdx + 9]
mov byte [rsp + 0xd9], al
movzx eax, byte [rdx + 0xa]
mov byte [rsp + 0xda], al
movzx eax, byte [rdx + 0xb]
mov byte [rsp + 0xdb], al
movzx eax, byte [rdx + 0xc]
mov byte [rsp + 0xdc], al
movzx eax, byte [rdx + 0xd]
mov byte [rsp + 0xdd], al
movzx eax, byte [rdx + 0xe]
mov byte [rsp + 0xde], al
movzx eax, byte [rdx + 0xf]
mov byte [rsp + 0xdf], al
add rbp, qword [rsp + 0xd8]
movzx eax, byte [rdx + 0x30]
add rbp, r8
mov byte [rsp + 0xd8], al
movzx eax, byte [rdx + 0x31]
mov byte [rsp + 0xd9], al
movzx eax, byte [rdx + 0x32]
mov byte [rsp + 0xda], al
movzx eax, byte [rdx + 0x33]
mov byte [rsp + 0xdb], al
movzx eax, byte [rdx + 0x34]
mov byte [rsp + 0xdc], al
movzx eax, byte [rdx + 0x35]
mov byte [rsp + 0xdd], al
movzx eax, byte [rdx + 0x36]
mov byte [rsp + 0xde], al
movzx eax, byte [rdx + 0x37]
mov byte [rsp + 0xdf], al
lea rax, [r15 + r15*8]
rol rbp, 0x1b
imul rbp, r14
ror rbx, 0x1c
xor rbp, rax
mov rsi, rbx
xor rsi, qword [rsp + 0xd8]
movzx eax, byte [rdx + 0x28]
xor rsi, r8
mov byte [rsp + 0xd8], al
movzx eax, byte [rdx + 0x29]
lea r9, [r10 + rbp]
mov byte [rsp + 0xd9], al
movzx eax, byte [rdx + 0x2a]
mov byte [rsp + 0xda], al
movzx eax, byte [rdx + 0x2b]
mov byte [rsp + 0xdb], al
movzx eax, byte [rdx + 0x2c]
mov byte [rsp + 0xdc], al
movzx eax, byte [rdx + 0x2d]
mov byte [rsp + 0xdd], al
movzx eax, byte [rdx + 0x2e]
rol rsi, 0x16
mov byte [rsp + 0xde], al
movzx eax, byte [rdx + 0x2f]
imul rsi, r14
mov byte [rsp + 0xdf], al
mov rcx, qword [rsp + 0xd8]
add rcx, rdi
lea rdi, [r10 + r12]
rol rdi, 0x1f
add rsi, rcx
imul rdi, r14
imul rbx, r14
lea rcx, [rsp + 0x80]
mov r8, rbx
call fcn.1400fbc20
mov r10, qword [rsp + 0x70]
lea r8, [r15 + rdi]
mov rbx, rax
lea rcx, [rsp + 0x70]
movzx eax, byte [r10 + 0x10]
lea rdx, [r10 + 0x20]
mov byte [rsp + 0xd8], al
movzx eax, byte [r10 + 0x11]
mov byte [rsp + 0xd9], al
movzx eax, byte [r10 + 0x12]
mov byte [rsp + 0xda], al
movzx eax, byte [r10 + 0x13]
mov byte [rsp + 0xdb], al
movzx eax, byte [r10 + 0x14]
mov byte [rsp + 0xdc], al
movzx eax, byte [r10 + 0x15]
mov byte [rsp + 0xdd], al
movzx eax, byte [r10 + 0x16]
mov byte [rsp + 0xde], al
movzx eax, byte [r10 + 0x17]
mov byte [rsp + 0xdf], al
mov r9, qword [rsp + 0xd8]
add r9, rsi
call fcn.1400fbc20
mov r15, qword [rsp + 0x90]
movabs r9, 0x9ae16a3b2f90404f
mov r12, qword [rsp + 0xa8]
movups xmm2, xmmword [rax]
movdqa xmm0, xmm2
psrldq xmm0, 8
movq rdx, xmm0
movups xmm0, xmmword [rbx]
add rdx, rdi
movdqa xmm1, xmm0
psrldq xmm1, 8
movq rcx, xmm1
add rcx, rsi
xor rcx, rdx
imul rcx, r9
mov r8, rcx
shr r8, 0x2f
xor r8, rcx
movq rcx, xmm0
add rcx, rbp
xor r8, rdx
imul r8, r9
movq rdx, xmm2
xor rdx, rsi
mov rsi, qword [rsp + 0xb0]
xor rcx, rdx
ror r8, 0x1e
imul rcx, r14
imul r8, r9
mov rax, rcx
shr rax, 0x2f
xor rax, rcx
xor rax, rdx
imul rax, r14
xor r8, rbp
mov rbp, qword [rsp + 0xd0]
mov rcx, rax
shr rcx, 0x2f
xor rcx, rax
imul rcx, r14
mov r14, qword [rsp + 0x98]
sub rcx, r13
mov r13, qword [rsp + 0xa0]
add rcx, rdi
xor rcx, r8
imul rcx, r9
mov rax, rcx
shr rax, 0x2f
xor rax, r8
xor rax, rcx
imul rax, r9
ror rax, 0x1f
imul rax, r9
add rsp, 0xb8
pop rdi
pop rbx
ret