Function at 0x14046d4b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r10d, r9d
and r10d, 0xf
je 0x14046d724
cmp r10d, 4
jb 0x14046d507
cmp r10d, 5
jbe 0x14046d54e
cmp r10d, 6
jne 0x14046d5a1
mov rsi, qword [r8 + 8]
test rsi, rsi
sete cl
movzx r10d, byte [0x140767932]
mov rax, rsi
cmp r10b, 0xbf
jne 0x14046d74c
jmp 0x14046d95c
cmp r10d, 3
je 0x14046d58a
mov eax, 1
cmp r10d, 1
jne 0x14046d97a
mov r14, rcx
mov rbx, rdx
mov ebp, r9d
mov rsi, r8
call fcn.14046cc40
mov r8, rsi
mov rsi, qword [rsi]
test rsi, rsi
je 0x14046d6d7
mov edi, eax
movzx r15d, byte [0x140790470]
mov r9d, ebp
mov rdx, rbx
jmp 0x14046d57b
cmp r10d, 4
mov r14, rcx
cmove r14, rdx
cmove rdx, rcx
mov eax, 0x4f91ff15
cmove r9d, eax
cmp rdx, r14
jae 0x14046d72f
mov r15d, 5
mov rsi, rdx
mov edi, r14d
xor eax, eax
test r9b, 0x40
jne 0x14046d5f7
xor ecx, ecx
jmp 0x14046d75c
mov qword [rsp + 0x28], rdx
mov r14, rcx
test r9b, 0x10
jne 0x14046d6de
jmp 0x14046d6d7
mov rsi, qword [rcx]
test rsi, rsi
je 0x14046d6d7
test r9b, 0x10
jne 0x14046d722
lea rdi, [rsi + 8]
lea rcx, [rsi + 0x1a0]
mov ebx, r9d
call fcn.14046ca50
lea rcx, [rsi + 0x188]
call fcn.14046ca30
lea rcx, [rsi + 0x78]
call fcn.14046a5d0
mov rcx, rdi
call fcn.14046c910
mov rcx, rsi
call fcn.1400954d0
mov r9d, ebx
jmp 0x14046d94f
lea rax, [rsi + 8]
mov qword [rsp + 0x30], rax
lea rcx, [rsi + 0x1a0]
mov r10, qword [0x140767b58]
mov eax, dword [0x140767b20]
xor eax, r15d
lea ebp, [rdi + 0xf65b]
mov r12d, 0xffff09a5
sub r12d, edi
sub eax, r12d
cdqe
add rax, r10
mov dword [rsp + 0x24], r9d
mov r13, r8
mov rbx, rdx
call qword [0x140704440]
lea rcx, [rsi + 0x188]
mov rdx, qword [0x140767b48]
sub ebp, r15d
mov eax, dword [0x140767b30]
add eax, ebp
cdqe
add rax, rdx
call qword [0x140704440]
lea rcx, [rsi + 0x78]
mov rdx, qword [0x140767b50]
lea eax, [rdi + r15]
add eax, 0xf65b
add eax, dword [0x140767b2c]
cdqe
add rax, rdx
call qword [0x140704440]
mov rcx, qword [0x140767b40]
xor r15d, dword [0x140767b28]
sub r15d, r12d
movsxd rax, r15d
add rax, rcx
mov rcx, qword [rsp + 0x30]
call qword [0x140704440]
mov rcx, qword [0x140767b60]
add ebp, dword [0x140767b24]
movsxd rax, ebp
add rax, rcx
mov rcx, rsi
call qword [0x140704440]
mov rdx, rbx
mov r8, r13
mov r9d, dword [rsp + 0x24]
test r9b, 0x10
jne 0x14046d6de
xor eax, eax
jmp 0x14046d97a
mov rax, qword [rsp + 0x28]
xor ecx, ecx
lea rsi, [rsp + 0x28]
nop word [rax + rax]
cmp r14, rcx
je 0x14046d84d
test r9d, 0x100
je 0x14046d71e
movzx r10d, byte [rax + rcx]
mov byte [r8 + rcx], r10b
inc rcx
test r9b, 0x20
jne 0x14046d6f0
mov cl, 1
mov rax, r8
jmp 0x14046d7ab
mov cl, 1
jmp 0x14046d79b
jmp 0x14046d738
ud2
test r9b, r9b
js 0x14046d96b
test r8, r8
je 0x14046d855
movzx eax, byte [r14 + r8 - 1]
mov byte [rdx + r8 - 1], al
dec r8
jmp 0x14046d72f
cmp al, 0xbf
je 0x14046d726
mov r10b, 0xfe
mov al, 0x7d
lock cmpxchg byte [0x140767932], r10b
je 0x14046d79b
test r9d, 0x200
je 0x14046d748
test r8, r8
je 0x14046d94f
xor eax, eax
cmp r8, 8
jb 0x14046d8e6
mov rcx, rdx
sub rcx, r14
cmp rcx, 0x20
jb 0x14046d8e6
cmp r8, 0x20
jae 0x14046d87d
xor eax, eax
jmp 0x14046d8bc
mov rax, rsi
test r9d, 0x800
jne 0x14046d855
mov edx, 0xf36d2bf1
mov r10d, 0xc92d420
mov r11d, 1
mov esi, 0xf36d2bf2
mov edi, 0xc92d41e
lea rbx, [0x140767920]
lea r14, [0x14060eb90]
nop word cs:[rax + rax]
mov r15d, r10d
imul r15, r15, 0x38e38e39
shr r15, 0x22
lea r15d, [r15 + r15*8]
lea r15d, [rdx + r15*2]
mov r12d, edi
imul r12, r12, 0x38e38e39
shr r12, 0x22
lea r12d, [r12 + r12*8]
lea r12d, [rsi + r12*2]
movzx ebp, byte [r11 + rbx - 1]
movzx r13d, byte [r11 + rbx]
xor bpl, byte [r12 + r14]
xor bpl, 0xfe
mov byte [r11 + rbx - 1], bpl
xor r13b, byte [r15 + r14]
xor r13b, 0xfe
mov byte [r11 + rbx], r13b
add edx, 0xfffffffe
add r10d, 2
add r11, 2
add esi, 0xfffffffe
add edi, 2
cmp r11, 0x13
jne 0x14046d7e0
test r9b, 0x40
jne 0x14046d867
mov rax, r8
jmp 0x14046d97a
xor eax, eax
test r9d, 0x400
cmovne rax, rdx
jmp 0x14046d97a
mov dl, 0xbf
xchg byte [0x140767932], dl
test cl, 1
jne 0x14046d973
jmp 0x14046d97a
mov rax, r8
and rax, 0xffffffffffffffe0
xor ecx, ecx
nop word cs:[rax + rax]
movups xmm0, xmmword [r14 + rcx]
movups xmm1, xmmword [r14 + rcx + 0x10]
movups xmmword [rdx + rcx], xmm0
movups xmmword [rdx + rcx + 0x10], xmm1
add rcx, 0x20
cmp rax, rcx
jne 0x14046d890
cmp r8, rax
je 0x14046d94f
test r8b, 0x18
je 0x14046d8e6
mov rcx, rax
mov rax, r8
and rax, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov r10, qword [r14 + rcx]
mov qword [rdx + rcx], r10
add rcx, 8
cmp rax, rcx
jne 0x14046d8d0
cmp r8, rax
je 0x14046d94f
mov r10, r8
mov rcx, rax
and r10, 3
je 0x14046d911
mov rcx, rax
nop word cs:[rax + rax]
movzx r11d, byte [r14 + rcx]
mov byte [rdx + rcx], r11b
inc rcx
dec r10
jne 0x14046d900
sub rax, r8
cmp rax, 0xfffffffffffffffc
ja 0x14046d94f
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
mov byte [rdx + rcx], al
movzx eax, byte [r14 + rcx + 1]
mov byte [rdx + rcx + 1], al
movzx eax, byte [r14 + rcx + 2]
mov byte [rdx + rcx + 2], al
movzx eax, byte [r14 + rcx + 3]
mov byte [rdx + rcx + 3], al
add rcx, 4
cmp r8, rcx
jne 0x14046d920
xor eax, eax
mov ecx, 0
test r9b, 0x20
jne 0x14046d97a
mov rsi, rax
mov rax, rdx
test r9d, 0x1000
jne 0x14046d97a
mov rax, rsi
test cl, 1
je 0x14046d97a
lea rax, [0x140767920]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret