Function at 0x14000d390
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rsi, rcx
xor eax, eax
nop
test al, al
jne 0x14000d3a0
movzx eax, byte [rsi]
cmp rax, 0x12
je 0x14000d514
cmp eax, 0x13
je case.0x14000d438.0
nop word [rax + rax]
mov ecx, dword [0x141dc35e8]
and ecx, dword [0x141dc35ec]
or ecx, 0x4023339b
imul rdx, rcx, 0x74c53bf1
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1d
imul ecx, ecx, 0x18c9d60d
cmp ecx, 0x78fe7bc6
ja 0x14000d3c0
nop word cs:[rax + rax]
mov ecx, dword [0x141dc35f0]
or ecx, dword [0x141dc35f4]
imul ecx, ecx, 0x51ec385e
add ecx, 0xe9c0da3b
cmp ecx, 0xa0a4476d
ja 0x14000d400
cmp rax, 0x10
ja case.default.0x14000d438
lea rcx, [0x141dbc2f4]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, dword [0x141dc3628]
sub eax, dword [0x141dc362c]
xor eax, 0x20198c01
or eax, 0x5fe633f6
add eax, 0x5f14a52e
cmp eax, 0xcb81d490
ja case.0x14000d438.6
mov edi, 0x10
cmp qword [rsi + 8], 0
jne 0x14000d67e
jmp case.0x14000d438.0
mov eax, dword [0x141dc3630]
xor edx, edx
div dword [0x141dc3634]
or eax, 0x13ee4e71
add eax, 0x5990acf6
cmp eax, 0x9c2609ce
ja case.0x14000d438.9
mov rcx, qword [rsi + 8]
nop word cs:[rax + rax]
mov eax, dword [0x141dc3638]
xor edx, edx
div dword [0x141dc363c]
imul eax, eax, 0xc1a72810
cmp eax, 0x78dbc188
je 0x14000d4b0
xor eax, eax
nop dword [rax]
test al, al
jne 0x14000d4d0
jmp 0x14000d624
mov eax, dword [0x141dc3648]
or eax, dword [0x141dc364c]
xor eax, 0x81020a9c
or eax, 0x40f49143
add eax, 0x6ad8ac4c
cmp eax, 0x6194255b
jb case.0x14000d438.13
mov edi, 8
cmp qword [rsi + 0x10], 0
jne 0x14000d67e
jmp case.0x14000d438.0
mov rsi, qword [rsi + 8]
mov rax, qword [rsi]
mov ecx, dword [0x141dc35e0]
or ecx, dword [0x141dc35e4]
mov rdi, qword [rax + 0x10]
add ecx, 0x1dfbbb8e
xor ecx, 0xbd091fd6
cmp ecx, 0xf3d8a4ac
jbe 0x14000d544
mov rcx, rsi
call rdi
mov bl, 1
nop word cs:[rax + rax]
mov rcx, rsi
call rdi
test bl, bl
je 0x14000d550
nop dword [rax]
mov eax, dword [0x141dc35d8]
imul eax, dword [0x141dc35dc]
add eax, 0x5e74f438
xor eax, 0x6155cdff
imul rcx, rax, 0x1a33ea5b
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
cmp eax, 0x7970dcfe
ja case.0x14000d438.0
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
mov eax, dword [0x141dc35f8]
xor edx, edx
div dword [0x141dc35fc]
nop word [rax + rax]
mov eax, dword [0x141dc3600]
or eax, dword [0x141dc3604]
and eax, 0x7be881ee
imul eax, eax, 0xd058f5e1
cmp eax, 0x33822e94
je 0x14000d5b0
mov rcx, qword [rsi + 8]
mov eax, dword [0x141dc3608]
xor edx, edx
div dword [0x141dc360c]
mov eax, 0xb8a325df
nop word cs:[rax + rax]
mov edx, dword [0x141dc3610]
add edx, dword [0x141dc3614]
imul rdx, rax
shr rdx, 0x3f
imul edx, edx, 0x3c20238d
cmp edx, 0x967375e
je 0x14000d5f0
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14000d620
mov edi, 0x10
test rcx, rcx
jne 0x14000d67e
jmp case.0x14000d438.0
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14000d640
mov rax, qword [rsi + 8]
nop dword [rax + rax]
mov ecx, dword [0x141dc3640]
or ecx, dword [0x141dc3644]
or ecx, 0x1001d422
and ecx, 0x508ddd32
cmp ecx, 0x7ee0cb9
je 0x14000d650
mov edi, 0x10
test rax, rax
je case.0x14000d438.0
mov eax, dword [0x141dc3618]
xor eax, dword [0x141dc361c]
cmp eax, 0x6835877b
jne 0x14000d6a4
mov r8, qword [rsi + rdi]
mov rcx, qword [0x141dde6e0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov eax, dword [0x141dc3620]
and eax, dword [0x141dc3624]
imul r14, rax, 0x7201deab
shr r14, 0x3e
or r14d, 0x91859320
mov r8, qword [rsi + rdi]
mov rcx, qword [0x141dde6e0]
xor edx, edx
call rbx
cmp r14d, 0x349d29fe
jbe 0x14000d6b0
jmp case.0x14000d438.0