Function at 0x1400404f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov r13, rdx
mov rdi, rcx
mov r12, qword [rdi + 0x18]
cmp r12, 0xffffffffffffffff
je 0x1400405a2
mov eax, dword [0x1400d59a8]
and eax, dword [0x1400d59ac]
and eax, 0xdb6dcbed
and eax, 0xac1491c1
imul eax, eax, 0xab047406
cmp eax, 0x2f579215
je 0x140040d0a
jmp 0x140040540
mov eax, dword [0x1400d59b0]
xor eax, dword [0x1400d59b4]
add eax, 0xc94f36d5
or eax, 0x7e808306
mov ecx, 0x748e3784
xor edx, edx
div ecx
mov rsi, rdi
add rsi, 8
mov rbp, qword [rdi + 8]
mov rbx, rbp
add rbx, 1
mov rcx, rbx
shr rcx, 3
imul r14, rcx, 7
cmp rbp, 8
cmovb r14, rbp
mov rcx, r14
shr rcx, 1
cmp r12, rcx
setb cl
cmp eax, 0x6323d4b3
je 0x140040540
test cl, 1
jne 0x140040939
jmp 0x1400405b1
mov ecx, 1
call fcn.14008f750
jmp 0x140040cf6
mov rax, r12
sub rax, r14
cmova r14, r12
cmp r14, 7
jb 0x1400405d2
movabs rax, 0x1ffffffffffffffe
cmp r14, rax
ja 0x14004062c
jmp 0x1400405f1
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r12
mov r12d, 8
mov eax, 4
cmp r14, 3
cmovb r12, rax
jmp 0x14004063b
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r12
shl r14, 3
add r14, 8
mov ecx, 7
mov rax, r14
xor edx, edx
div rcx
add rax, 0xffffffffffffffff
bsr rcx, rax
xor rcx, 0x3f
mov r12, 0xffffffffffffffff
shr r12, cl
add r12, 1
jmp 0x14004063b
mov ecx, 1
call fcn.14008f750
jmp 0x140040cf6
mov ecx, 0x30
mov rax, r12
mul rcx
mov r13, rax
seto al
jo 0x140040675
mov r14, r12
add r14, 0x10
mov rax, r13
add rax, r14
setb al
jb 0x140040675
mov r15, r13
add r15, r14
movabs rax, 0x7ffffffffffffff0
cmp r15, rax
jbe 0x14004067e
mov cl, 1
call fcn.14008f750
jmp 0x1400406ab
mov al, byte [0x1400d7030]
mov rcx, r15
mov edx, 0x10
call fcn.1400541c0
mov rcx, rax
cmp rcx, 0
jne 0x140040702
mov cl, 1
mov edx, 0x10
mov r8, r15
call fcn.14008f760
jmp 0x1400406ab
mov ecx, dword [0x1400d59b8]
or ecx, dword [0x1400d59bc]
and ecx, 0xbf5f86cd
xor ecx, 0xa84cf2e
xor ecx, 0x16aaa21
cmp ecx, 0x64553011
je 0x140040d17
jmp 0x1400406d7
mov ecx, dword [0x1400d59c0]
add ecx, dword [0x1400d59c4]
add ecx, 0x6a11bf1a
xor ecx, 0xc01b9eb4
add ecx, 0x6d93d8
cmp ecx, 0xd0308140
jae 0x1400406d7
jmp 0x140040cf6
mov r15, r12
add r15, 0xffffffffffffffff
mov rax, r12
shr rax, 3
imul rax, rax, 7
cmp r12, 9
mov r12, rax
cmovb r12, r15
add rcx, r13
mov edx, 0xff
mov r8, r14
mov r14, rcx
call fcn.1400aed70
mov r13, qword [rdi]
mov rax, qword [rsp + 0x28]
cmp rax, 0
je 0x1400408c4
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x38], r14
movaps xmm0, xmmword [r13]
pmovmskb r12d, xmm0
xor r12w, 0xffff
mov rcx, r13
add rcx, 0xffffffffffffffd0
mov qword [rsp + 0x70], rcx
xor edx, edx
mov r14, r13
mov r8, rax
mov qword [rsp + 0x88], r13
cmp r12w, 0
je 0x140040785
jmp 0x1400407ab
jmp 0x14004078e
xor r12w, 0xffff
jmp 0x1400407ab
mov rax, r14
add r14, 0x10
movaps xmm0, xmmword [rax + 0x10]
pmovmskb r12d, xmm0
add rdx, 0x10
cmp r12w, 0xffff
je 0x14004078e
jmp 0x140040787
tzcnt eax, r12d
mov ecx, r12d
dec ecx
and ecx, r12d
mov r12w, cx
mov qword [rsp + 0x68], rdx
mov r13, rdx
add r13, rax
dec r8
mov qword [rsp + 0x60], r8
mov rax, r13
neg rax
lea rax, [rax + rax*2]
shl rax, 4
mov rdx, qword [rsp + 0x70]
add rdx, rax
mov rcx, qword [rsp + 0x30]
call fcn.1400466b0
mov rcx, rax
and rcx, r15
mov r10, qword [rsp + 0x38]
movups xmm0, xmmword [r10 + rcx]
pmovmskb edx, xmm0
cmp dx, 0
je 0x14004080b
jmp 0x140040833
xor r9d, r9d
xor r8d, r8d
jmp 0x140040813
add r8, 0x10
lea rcx, [r9 + rcx + 0x10]
and rcx, r15
movups xmm0, xmmword [r10 + rcx]
pmovmskb edx, xmm0
cmp dx, 0
mov r9, r8
je 0x140040813
jmp 0x140040833
tzcnt edx, edx
movzx edx, dx
add rcx, rdx
and rcx, r15
cmp byte [r10 + rcx], 0xff
jle 0x140040856
movaps xmm0, xmmword [r10]
pmovmskb ecx, xmm0
tzcnt ecx, ecx
movzx ecx, cx
shr rax, 0x39
mov rdx, rcx
add rdx, 0xfffffffffffffff0
and rdx, r15
mov byte [r10 + rcx], al
mov byte [r10 + rdx + 0x10], al
xor r13, 0xffffffffffffffff
imul rax, r13, 0x30
mov r13, qword [rsp + 0x88]
mov rdx, r13
add rdx, rax
xor rcx, 0xffffffffffffffff
imul rax, rcx, 0x30
mov rcx, r10
add rcx, rax
mov r8d, 0x30
call fcn.1400ae6d0
mov r8, qword [rsp + 0x60]
cmp r8, 0
mov rdx, qword [rsp + 0x68]
jne 0x14004077c
mov rax, qword [rsp + 0x28]
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0x80]
jmp 0x1400408c4
sub r12, rax
mov qword [rdi], r14
mov qword [rsi], r15
mov qword [rdi + 0x10], r12
movabs rax, 0x8000000000000001
cmp rbp, 0
je 0x140040cf6
mov ecx, 0x30
mov rax, rbx
mul rcx
mov rcx, rax
seto al
add rbp, 0x11
mov rdx, rcx
add rdx, rbp
movabs rax, 0x8000000000000001
cmp rdx, 0
je 0x140040cf6
xor eax, eax
sub rax, rcx
add r13, rax
mov rcx, r13
mov r8d, 0x10
call fcn.1400541d0
movabs rax, 0x8000000000000001
jmp 0x140040cf6
mov r15, qword [rdi]
mov r8, rbx
shr r8, 4
mov rax, rbx
and rax, 0xf
cmp rax, 0
setne al
and al, 1
movzx eax, al
mov rcx, r8
add rcx, rax
cmp rcx, 0
je 0x1400409ad
add r8, rax
mov rdx, rcx
and rdx, 1
xor eax, eax
cmp r8, 1
je 0x14004098a
movabs rax, 0x1ffffffffffffffe
and rcx, rax
xor eax, eax
xor r8d, r8d
jmp 0x1400409b9
jmp 0x14004098a
cmp rdx, 0
je 0x1400409ad
movaps xmm0, xmmword [r15 + rax]
xorps xmm1, xmm1
pcmpgtb xmm1, xmm0
movaps xmm0, xmmword [0x1400b5760]
por xmm1, xmm0
movdqa xmmword [r15 + rax], xmm1
cmp rbx, 0x10
jb 0x140040a5c
jmp 0x140040a01
mov r9, rax
or r9, 0x10
movaps xmm0, xmmword [r15 + rax]
xorps xmm1, xmm1
xorps xmm2, xmm2
pcmpgtb xmm2, xmm0
movaps xmm0, xmmword [0x1400b5760]
por xmm2, xmm0
movaps xmmword [r15 + rax], xmm2
add rax, 0x20
movaps xmm2, xmmword [r15 + r9]
pcmpgtb xmm1, xmm2
por xmm1, xmm0
movdqa xmmword [r15 + r9], xmm1
add r8, 2
cmp r8, rcx
je 0x140040988
jmp 0x1400409b9
mov eax, dword [0x1400d59c8]
imul eax, dword [0x1400d59cc]
xor eax, 0x33a96446
imul eax, eax, 0x14db5501
sub eax, 0xad3b3741
cmp eax, 0x712e4fc
je 0x140040d28
jmp 0x140040a2b
mov eax, dword [0x1400d59d0]
sub eax, dword [0x1400d59d4]
xor eax, 0x8129cd03
sub eax, 0x25274ef2
add eax, 0xd481f61c
mov rcx, r15
add rcx, rbx
movups xmm0, xmmword [r15]
movups xmmword [rcx], xmm0
cmp eax, 0xa38309db
je 0x140040a2b
jmp 0x140040a7a
mov rcx, r15
add rcx, 0x10
mov rdx, r15
mov r8, rbx
call fcn.1400ae6d0
xor eax, eax
cmp rbp, 0xffffffffffffffff
je 0x140040ce5
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r12
mov rax, r15
add rax, 0xffffffffffffffd0
mov qword [rsp + 0x90], rax
xor edx, edx
mov r13, rdx
imul rax, r13, 0xffffffffffffffd0
mov rcx, rax
add rcx, 0xffffffffffffffd0
mov r8, r15
add r8, rcx
mov rsi, r15
add rsi, rax
add rdx, 1
mov r12, r15
add r12, r13
cmp byte [r15 + r13], 0x80
jne 0x140040cd2
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x40], rdx
mov rax, r13
xor rax, 0xffffffffffffffff
imul rax, rax, 0x30
mov rbx, r15
add rbx, rax
xor eax, eax
sub rax, r13
imul rax, rax, 0x30
mov rdx, qword [rsp + 0x90]
add rdx, rax
mov rax, rbx
add rax, 0x10
mov qword [rsp + 0x50], rax
mov rax, rbx
add rax, 0x20
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], rdx
jmp 0x140040b1b
jmp 0x140040b14
mov rdx, qword [rsp + 0x58]
jmp 0x140040b1b
mov rcx, qword [rsp + 0x30]
call fcn.1400466b0
mov rcx, rax
and rcx, rbp
movups xmm0, xmmword [r15 + rcx]
pmovmskb r8d, xmm0
cmp r8w, 0
mov rdx, rcx
jne 0x140040b6c
xor r10d, r10d
mov rdx, rcx
xor r9d, r9d
jmp 0x140040b4a
add r9, 0x10
lea rdx, [r10 + rdx + 0x10]
and rdx, rbp
movups xmm0, xmmword [r15 + rdx]
pmovmskb r8d, xmm0
cmp r8w, 0
mov r10, r9
je 0x140040b4a
jmp 0x140040b6c
tzcnt r8d, r8d
movzx r8d, r8w
add rdx, r8
and rdx, rbp
cmp byte [r15 + rdx], 0xff
jle 0x140040b91
movaps xmm0, xmmword [r15]
pmovmskb edx, xmm0
tzcnt edx, edx
movzx edx, dx
mov r8, r13
sub r8, rcx
mov r9, rdx
sub r9, rcx
xor r9, r8
and r9, rbp
cmp r9, 0x10
jb 0x140040c4a
mov rcx, rdx
xor rcx, 0xffffffffffffffff
imul r8, rcx, 0x30
mov rcx, r15
add rcx, r8
mov r8b, byte [r15 + rdx]
shr rax, 0x39
mov r9, rdx
add r9, 0xfffffffffffffff0
and r9, rbp
mov byte [r15 + rdx], al
mov byte [r15 + r9 + 0x10], al
cmp r8b, 0xff
je 0x140040caa
imul rax, rdx, 0xffffffffffffffd0
mov rdx, r15
add rdx, rax
cmp qword [rsp + 0x78], rdx
setb al
cmp rcx, rsi
setb dl
and al, dl
test al, 1
jne 0x140040c03
jmp 0x140040c07
xor eax, eax
jmp 0x140040c68
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rcx]
movdqu xmmword [rbx], xmm1
movdqu xmmword [rcx], xmm0
mov rax, qword [rsp + 0x50]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rcx + 0x10]
movdqu xmmword [rax], xmm1
movdqu xmmword [rcx + 0x10], xmm0
mov rax, qword [rsp + 0x48]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rcx + 0x20]
movdqu xmmword [rax], xmm1
movdqu xmmword [rcx + 0x20], xmm0
jmp 0x140040b14
shr rax, 0x39
mov rcx, r13
add rcx, 0xfffffffffffffff0
and rcx, rbp
mov byte [r12], al
mov byte [r15 + rcx + 0x10], al
mov rdx, qword [rsp + 0x40]
jmp 0x140040cd2
mov dl, byte [rbx + rax]
mov r8b, byte [rcx + rax]
mov byte [rbx + rax], r8b
mov byte [rcx + rax], dl
mov dl, byte [rbx + rax + 1]
mov r8b, byte [rcx + rax + 1]
mov byte [rbx + rax + 1], r8b
mov byte [rcx + rax + 1], dl
mov dl, byte [rbx + rax + 2]
mov r8b, byte [rcx + rax + 2]
mov byte [rbx + rax + 2], r8b
mov byte [rcx + rax + 2], dl
add rax, 3
cmp rax, 0x30
je 0x140040b12
jmp 0x140040c68
mov rax, r13
add rax, 0xfffffffffffffff0
and rax, rbp
mov byte [r12], 0xff
mov byte [r15 + rax + 0x10], 0xff
mov rdx, rbx
mov r8d, 0x30
call fcn.1400ae6d0
mov rdx, qword [rsp + 0x40]
cmp r13, rbp
jne 0x140040a95
mov rax, r14
mov r12, qword [rsp + 0x28]
jmp 0x140040ce5
sub rax, r12
mov qword [rdi + 0x10], rax
movabs rax, 0x8000000000000001
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
invalid
adc ecx, edx
and dword [r9], r12d
pop rsp
mov ah, 0x27
lodsb al, byte [rsi]
invalid
push 0xffffffffdb6d6141
invalid