Function at 0x14003a4a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x48], edx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor edi, edi
mov r14d, edx
add r14, rcx
mov eax, r9d
add rax, r8
mov qword [rsp + 0x40], r14
mov qword [rsp + 0xd8], rax
mov rbx, r8
mov r12, rcx
mov r13d, edi
cmp r9d, 0x40
jb 0x14003ab26
cmp edx, 8
jb 0x14003ab26
cmp rcx, 0x2001
ja 0x14003a50e
mov eax, 0xc00000bb
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 0xa8], rbp
xor edx, edx
mov rbp, qword [rsp + 0xc8]
mov r8d, 0x40000
mov rcx, rbp
call sub.msvcrt.dll_memset
movzx eax, byte [r12]
lea rsi, [rbx + 5]
mov r9, qword [rsp + 0xb0]
lea r8, [r14 - 5]
mov ecx, dword [rsp + 0xe0]
mov r11, rdi
mov rdx, qword [rsp + 0xd8]
mov r15d, 2
mov byte [rbx + 4], al
lea rbx, [r12 + 1]
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], rdi
mov rdi, r12
mov dword [rsp + 0x58], ecx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0xd0], r9
nop dword [rax]
lea rax, [rdi + 0x2000]
mov r10, r8
cmp rax, r8
cmovbe r10, rax
mov eax, ecx
add rax, rbx
mov qword [rsp + 0x28], r10
cmp r10, rax
cmovb rax, r10
and r11d, 0x3fff
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], r11
cmp rdi, r10
jae 0x14003a650
lea r8, [r11*8 + 0x40000]
add r8, rbp
lea r14, [0x140072100]
nop
movzx eax, byte [rdi + 2]
lea rdx, [rdi + 1]
inc r11
lea r8, [r8 + 8]
movzx ecx, word [r14 + rax*2 + 0x400]
movzx eax, byte [rdi]
movzx eax, word [r14 + rax*2]
xor rcx, rax
movzx eax, byte [rdx]
movzx eax, word [r14 + rax*2 + 0x200]
xor rcx, rax
mov rax, qword [rbp + rcx*8]
mov qword [r8 - 8], rax
mov qword [rbp + rcx*8], rdi
mov rdi, rdx
cmp rdx, r10
jb 0x14003a5e0
mov r14, qword [rsp + 0x40]
mov qword [rsp + 0x38], rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x30], r11
mov rax, qword [rsp + 0x20]
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rsp + 0xc8]
lea rbp, [rbx - 0x2000]
mov edi, 0x2000
sub rdi, r12
cmp rbx, rax
jb 0x14003a69f
cmp rbx, r10
jae 0x14003aa59
mov r8, rbx
lea rcx, [rsp + 0x48]
mov rdx, r10
call fcn.140039d10
mov r9, qword [rsp + 0xd0]
mov r10, qword [rsp + 0x28]
mov r8, qword [rsp + 0xc8]
mov qword [rsp + 0x20], rax
mov r11d, dword [rbx]
lea rcx, [rdi + rbp]
and ecx, 0x3fff
mov rcx, qword [r8 + rcx*8 + 0x40000]
cmp rcx, rbp
jb 0x14003a720
mov edx, dword [rcx]
xor edx, r11d
je 0x14003a798
test edx, 0xffffff
je 0x14003a77c
sub rcx, r12
and ecx, 0x3fff
mov rcx, qword [r8 + rcx*8 + 0x40000]
cmp rcx, rbp
jb 0x14003a720
mov eax, dword [rcx]
xor eax, r11d
je 0x14003a798
test eax, 0xffffff
je 0x14003a77c
sub rcx, r12
and ecx, 0x3fff
mov rcx, qword [r8 + rcx*8 + 0x40000]
cmp rcx, rbp
jb 0x14003a720
mov eax, dword [rcx]
xor eax, r11d
je 0x14003a798
test eax, 0xffffff
je 0x14003a77c
mov rdx, qword [rsp + 0xd8]
lea ecx, [r15 + r15]
mov byte [rsi], r11b
inc rbx
inc rsi
inc rbp
mov rax, rsi
test r15d, r15d
jle 0x14003a74d
mov rax, qword [rsp + 0x20]
mov r15d, ecx
jmp 0x14003a667
mov dword [r9], ecx
add rsi, 4
lea rcx, [rdx - 0x29]
mov r15d, 1
mov r9, rax
cmp rsi, rcx
jae 0x14003aa7f
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0x20]
jmp 0x14003a667
mov r13, rbx
lea rbp, [rbx - 0x2000]
sub r13, rcx
mov edi, 3
xor eax, eax
mov r9d, eax
jmp 0x14003a940
xor eax, eax
mov r9d, eax
lea edi, [rax + 3]
mov rax, rbx
mov r10, rbx
add rax, 0x24
add rbx, 4
add rcx, 4
cmp rax, r14
jae 0x14003a83b
nop dword [rax + rax]
mov edx, dword [rcx]
mov eax, dword [rbx]
cmp eax, edx
jne 0x14003a8e3
mov edx, dword [rcx + 4]
mov eax, dword [rbx + 4]
cmp eax, edx
jne 0x14003a8db
mov edx, dword [rcx + 8]
mov eax, dword [rbx + 8]
cmp eax, edx
jne 0x14003a8d1
mov edx, dword [rcx + 0xc]
mov eax, dword [rbx + 0xc]
cmp eax, edx
jne 0x14003a8c7
mov edx, dword [rcx + 0x10]
mov eax, dword [rbx + 0x10]
cmp eax, edx
jne 0x14003a8bd
mov edx, dword [rcx + 0x14]
mov eax, dword [rbx + 0x14]
cmp eax, edx
jne 0x14003a8b3
mov edx, dword [rcx + 0x18]
mov eax, dword [rbx + 0x18]
cmp eax, edx
jne 0x14003a8a9
mov edx, dword [rcx + 0x1c]
mov eax, dword [rbx + 0x1c]
cmp eax, edx
jne 0x14003a89f
add rbx, 0x20
add rcx, 0x20
lea rax, [rbx + 0x20]
cmp rax, r14
jb 0x14003a7c0
cmp rbx, r14
jae 0x14003a852
movzx eax, byte [rcx]
cmp byte [rbx], al
jne 0x14003a852
inc rbx
inc rcx
cmp rbx, r14
jb 0x14003a840
mov rax, rbx
sub rax, r10
cmp rax, rdi
jbe 0x14003a92a
mov r13, rbx
mov rdi, rax
sub r13, rcx
cmp rcx, r10
jbe 0x14003a92d
mov rbx, r10
add rbx, rdi
lea rax, [rdi - 3]
lea r13, [r13*8 - 8]
cmp rax, 7
jae 0x14003a964
add r13, rax
mov word [rsi], r13w
add rsi, 2
jmp 0x14003aa05
add rbx, 0x1c
add rcx, 0x1c
jmp 0x14003a8e3
add rbx, 0x18
add rcx, 0x18
jmp 0x14003a8e3
add rbx, 0x14
add rcx, 0x14
jmp 0x14003a8e3
add rbx, 0x10
add rcx, 0x10
jmp 0x14003a8e3
add rbx, 0xc
add rcx, 0xc
jmp 0x14003a8e3
add rbx, 8
add rcx, 8
jmp 0x14003a8e3
add rbx, 4
add rcx, 4
cmp al, dl
jne 0x14003a852
movzx eax, byte [rcx + 1]
mov r8, qword [rsp + 0xc8]
cmp byte [rbx + 1], al
je 0x14003a907
inc rbx
inc rcx
jmp 0x14003a852
movzx eax, byte [rcx + 2]
cmp byte [rbx + 2], al
je 0x14003a91d
add rbx, 2
add rcx, 2
jmp 0x14003a852
add rbx, 3
add rcx, 3
jmp 0x14003a852
add r9, rax
sub rcx, rax
mov rbx, r10
inc r9
cmp r9, 0x18
jae 0x14003a876
sub rcx, r12
and ecx, 0x3fff
mov rcx, qword [r8 + rcx*8 + 0x40000]
cmp rcx, rbp
jb 0x14003a876
cmp r11d, dword [rcx]
jne 0x14003a933
jmp 0x14003a7a0
mov rdx, qword [rsp + 0xa0]
or r13, 7
mov word [rsi], r13w
sub rax, 7
add rsi, 2
mov rcx, rsi
test rdx, rdx
jne 0x14003a9a3
mov qword [rsp + 0xa0], rcx
cmp rax, 0xf
jae 0x14003a999
mov byte [rsi], al
inc rsi
jmp 0x14003aa05
mov byte [rsi], 0xf
inc rsi
xor edx, edx
jmp 0x14003a9ce
movzx ecx, byte [rdx]
cmp rax, 0xf
jae 0x14003a9bf
shl al, 4
or al, cl
mov byte [rdx], al
xor eax, eax
mov qword [rsp + 0xa0], rax
jmp 0x14003aa05
or cl, 0xf0
mov byte [rdx], cl
xor edx, edx
mov qword [rsp + 0xa0], rdx
sub rax, 0xf
cmp rax, 0xff
jae 0x14003a9e1
mov byte [rsi], al
inc rsi
jmp 0x14003aa05
add rax, 0x16
mov byte [rsi], 0xff
cmp rax, 0x10000
jae 0x14003a9fa
mov word [rsi + 1], ax
add rsi, 3
jmp 0x14003aa05
mov word [rsi + 1], dx
mov dword [rsi + 3], eax
add rsi, 7
lea eax, [r15*2 + 1]
test r15d, r15d
jle 0x14003aa1f
mov r9, qword [rsp + 0xd0]
mov r15d, eax
jmp 0x14003aa3e
mov rcx, qword [rsp + 0xd0]
mov r9, rsi
mov qword [rsp + 0xd0], rsi
mov r15d, 1
add rsi, 4
mov dword [rcx], eax
mov rdx, qword [rsp + 0xd8]
lea rax, [rdx - 0x29]
cmp rsi, rax
jae 0x14003aa7f
mov r10, qword [rsp + 0x28]
jmp 0x14003a63f
mov r11, qword [rsp + 0x30]
lea r8, [r14 - 5]
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0xc8]
mov ecx, dword [rsp + 0xe0]
cmp rbx, r8
jb 0x14003a590
mov rbp, qword [rsp + 0xa8]
cmp rbx, r14
jae 0x14003aaca
nop dword [rax]
cmp rsi, rdx
jae 0x14003ab26
movzx eax, byte [rbx]
inc rbx
mov byte [rsi], al
inc rsi
lea eax, [r15 + r15]
mov rcx, rsi
test r15d, r15d
jle 0x14003aab5
mov r15d, eax
jmp 0x14003aac5
mov dword [r9], eax
mov r15d, 1
mov r9, rcx
add rsi, 4
cmp rbx, r14
jb 0x14003aa90
cmp rsi, rdx
jae 0x14003ab26
test r15d, r15d
jle 0x14003aaed
nop dword [rax]
nop dword [rax + rax]
lea r15d, [r15*2 + 1]
test r15d, r15d
jg 0x14003aae0
sub esi, dword [rsp + 0xb0]
lea eax, [r15*2 + 1]
mov dword [r9], eax
mov ecx, 8
mov rax, qword [rsp + 0xc0]
cmp esi, ecx
cmovb esi, ecx
mov dword [rax], esi
xor eax, eax
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov eax, 0xc0000023
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret