Function at 0x14003ed10
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x58
mov esi, 1
cmp r8d, 0x10
jb 0x14003f020
mov rdi, rdx
mov rbx, rcx
mov dword [rsp + 0x20], 4
lea rcx, [rsp + 0x24]
mov eax, dword [rsp + 0x20]
xor al, 0x30
mov byte [rsp + 0x24], al
mov eax, dword [rsp + 0x20]
inc al
xor al, 0x30
mov byte [rsp + 0x25], al
mov eax, dword [rsp + 0x20]
add al, 2
xor al, 0x30
mov byte [rsp + 0x26], al
mov eax, dword [rsp + 0x20]
add al, 3
xor al, 0x30
mov byte [rsp + 0x27], al
mov eax, dword [rsp + 0x20]
add al, 4
xor al, 0x30
mov byte [rsp + 0x28], al
mov eax, dword [rsp + 0x20]
add al, 5
xor al, 0x30
mov byte [rsp + 0x29], al
mov eax, dword [rsp + 0x20]
add al, 6
xor al, 0x30
mov byte [rsp + 0x2a], al
mov eax, dword [rsp + 0x20]
add al, 7
xor al, 0x30
mov byte [rsp + 0x2b], al
mov eax, dword [rsp + 0x20]
add al, 8
xor al, 0x2d
mov byte [rsp + 0x2c], al
mov eax, dword [rsp + 0x20]
add al, 9
xor al, 0x30
mov byte [rsp + 0x2d], al
mov eax, dword [rsp + 0x20]
add al, 0xa
xor al, 0x30
mov byte [rsp + 0x2e], al
mov eax, dword [rsp + 0x20]
add al, 0xb
xor al, 0x30
mov byte [rsp + 0x2f], al
mov eax, dword [rsp + 0x20]
add al, 0xc
xor al, 0x30
mov byte [rsp + 0x30], al
mov eax, dword [rsp + 0x20]
add al, 0xd
xor al, 0x2d
mov byte [rsp + 0x31], al
mov eax, dword [rsp + 0x20]
add al, 0xe
xor al, 0x30
mov byte [rsp + 0x32], al
mov eax, dword [rsp + 0x20]
add al, 0xf
xor al, 0x30
mov byte [rsp + 0x33], al
mov eax, dword [rsp + 0x20]
add al, 0x10
xor al, 0x30
mov byte [rsp + 0x34], al
mov eax, dword [rsp + 0x20]
add al, 0x11
xor al, 0x30
mov byte [rsp + 0x35], al
mov eax, dword [rsp + 0x20]
add al, 0x12
xor al, 0x2d
mov byte [rsp + 0x36], al
mov eax, dword [rsp + 0x20]
add al, 0x13
xor al, 0x30
mov byte [rsp + 0x37], al
mov eax, dword [rsp + 0x20]
add al, 0x14
xor al, 0x30
mov byte [rsp + 0x38], al
mov eax, dword [rsp + 0x20]
add al, 0x15
xor al, 0x30
mov byte [rsp + 0x39], al
mov eax, dword [rsp + 0x20]
add al, 0x16
xor al, 0x30
mov byte [rsp + 0x3a], al
mov eax, dword [rsp + 0x20]
add al, 0x17
xor al, 0x2d
mov byte [rsp + 0x3b], al
mov eax, dword [rsp + 0x20]
add al, 0x18
xor al, 0x30
mov byte [rsp + 0x3c], al
mov eax, dword [rsp + 0x20]
add al, 0x19
xor al, 0x30
mov byte [rsp + 0x3d], al
mov eax, dword [rsp + 0x20]
add al, 0x1a
xor al, 0x30
mov byte [rsp + 0x3e], al
mov eax, dword [rsp + 0x20]
add al, 0x1b
xor al, 0x30
mov byte [rsp + 0x3f], al
mov eax, dword [rsp + 0x20]
add al, 0x1c
xor al, 0x30
mov byte [rsp + 0x40], al
mov eax, dword [rsp + 0x20]
add al, 0x1d
xor al, 0x30
mov byte [rsp + 0x41], al
mov eax, dword [rsp + 0x20]
add al, 0x1e
xor al, 0x30
mov byte [rsp + 0x42], al
mov eax, dword [rsp + 0x20]
add al, 0x1f
xor al, 0x30
mov byte [rsp + 0x43], al
mov eax, dword [rsp + 0x20]
add al, 0x20
xor al, 0x30
mov byte [rsp + 0x44], al
mov eax, dword [rsp + 0x20]
add al, 0x21
xor al, 0x30
mov byte [rsp + 0x45], al
mov eax, dword [rsp + 0x20]
add al, 0x22
xor al, 0x30
mov byte [rsp + 0x46], al
mov eax, dword [rsp + 0x20]
add al, 0x23
xor al, 0x30
mov byte [rsp + 0x47], al
mov byte [rsp + 0x48], 0
xor eax, eax
movzx edx, byte [rsp + rax + 0x24]
mov r8d, dword [rsp + 0x20]
add r8d, eax
xor r8b, dl
mov byte [rsp + rax + 0x24], r8b
movzx edx, byte [rsp + rax + 0x25]
mov r8d, dword [rsp + 0x20]
add r8d, eax
inc r8b
xor r8b, dl
mov byte [rsp + rax + 0x25], r8b
movzx edx, byte [rsp + rax + 0x26]
mov r8d, dword [rsp + 0x20]
add r8d, eax
add r8b, 2
xor r8b, dl
mov byte [rsp + rax + 0x26], r8b
add rax, 3
cmp rax, 0x24
jne 0x14003eef0
mov byte [rsp + 0x48], 0
call fcn.14006afa0
mov r14, rax
mov rcx, rbx
call fcn.14006afa0
mov ecx, r14d
cmp rax, rcx
jne 0x14003f020
test r14d, r14d
je 0x14003eff5
mov eax, r14d
xor ecx, ecx
mov edx, 0x842100
xor r9d, r9d
xor r8d, r8d
jmp 0x14003efa8
add r10b, r9b
lea r9d, [r8 - 1]
shr r9d, 1
mov byte [rsp + r9 + 0x20], r10b
mov r9d, r10d
inc r8d
nop word cs:[rax + rax]
inc rcx
cmp rax, rcx
je 0x14003eff5
movzx r10d, byte [rbx + rcx]
cmp ecx, 0x17
ja 0x14003efbf
bt edx, ecx
jae 0x14003efbf
cmp r10b, 0x2d
je 0x14003efa0
jmp 0x14003f020
lea r11d, [r10 - 0x61]
cmp r11b, 5
ja 0x14003efcf
add r10b, 0xa9
jmp 0x14003efe9
lea r11d, [r10 - 0x41]
cmp r11b, 5
ja 0x14003efdf
add r10b, 0xc9
jmp 0x14003efe9
add r10b, 0xd0
cmp r10b, 9
ja 0x14003f020
test r8b, 1
jne 0x14003ef7c
shl r10b, 4
jmp 0x14003ef8b
mov rax, qword [rsp + 0x28]
movq xmm0, qword [rsp + 0x20]
pxor xmm1, xmm1
punpcklbw xmm0, xmm1
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0xb1
packuswb xmm0, xmm0
movq qword [rdi], xmm0
mov qword [rdi + 8], rax
xor esi, esi
mov eax, esi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r14
ret