Function at 0x140014e1e
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x148
mov eax, dword [0x1400fb8d8]
mov ecx, dword [0x1400f8c60]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400152b8
lea rcx, [rsp + 0x30]
mov r8d, 0x118
xor edx, edx
call fcn.1400201e0
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140014ffa
lea rdx, str.RtlGetVersion
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140014ffa
lea rcx, [rsp + 0x2c]
mov dword [rcx], 0x11c
call rax
test eax, eax
jne 0x140014ffa
mov eax, dword [rsp + 0x30]
cmp eax, 5
je 0x140014f34
cmp eax, 6
je 0x140014ef7
cmp eax, 0xa
jne case.default.0x140014f0f
cmp dword [rsp + 0x34], 0
jne case.default.0x140014f0f
cmp dword [rsp + 0x38], 0x55f0
jb 0x140015174
call fcn.1400153d0
mov rcx, rax
call fcn.140015470
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 9
jmp 0x140014ffa
mov eax, dword [rsp + 0x34]
cmp rax, 3
ja case.default.0x140014f0f
lea rcx, [0x1400de80c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
call fcn.1400156a6
mov rcx, rax
call fcn.140015746
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 4
jmp 0x140014ffa
mov eax, dword [rsp + 0x34]
test eax, eax
je 0x140015029
cmp eax, 1
je 0x140015009
cmp eax, 2
jne case.default.0x140014f0f
call fcn.14001577e
mov rcx, rax
call fcn.14001581e
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 3
jmp 0x140014ffa
movabs rax, 0x1372d4c8794be27e
mov qword [rsp + 0x20], rax
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x39c], 0
je 0x140015197
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rax, [rax + 0x391]
cmp byte [rax + 8], 0
je 0x140014fe9
xor ecx, ecx
movabs rdx, 0x1301a3a71d258b29
mov r8, rax
mov r9, rdx
shr r9, cl
xor byte [r8], r9b
add rcx, 8
inc r8
cmp rcx, 0x40
jne 0x140014fcf
mov byte [rax + 8], 0
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 0
mov rax, qword [0x1400fb8d0]
add rsp, 0x148
ret
call fcn.14001585a
mov rcx, rax
call fcn.1400158fa
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 2
jmp 0x140014ffa
call fcn.140015932
mov rcx, rax
call fcn.1400159d2
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 1
jmp 0x140014ffa
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x33c], 0
je 0x1400151f2
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rax, [rax + 0x331]
cmp byte [rax + 0xa], 0
je 0x1400150b7
xor edx, edx
movabs r8, 0x8169c98f0b5dc5f7
mov r9, rax
mov ecx, edx
and cl, 0x38
mov r10, r8
shr r10, cl
xor byte [r9], r10b
add rdx, 8
inc r9
cmp rdx, 0x50
jne 0x140015098
mov byte [rax + 0xa], 0
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 6
jmp 0x140014ffa
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 0x330], 0
je 0x140015255
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rax, [rax + 0x321]
cmp byte [rax + 0xc], 0
je 0x14001513b
xor edx, edx
movabs r8, 0x1f3fd56d15fbb583
mov r9, rax
mov ecx, edx
and cl, 0x38
mov r10, r8
shr r10, cl
xor byte [r9], r10b
add rdx, 8
inc r9
cmp rdx, 0x60
jne 0x14001511c
mov byte [rax + 0xc], 0
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 7
jmp 0x140014ffa
call fcn.1400155ce
mov rcx, rax
call fcn.14001566e
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 5
jmp 0x140014ffa
call fcn.1400154a8
mov rcx, rax
call fcn.140015548
mov qword [0x1400fb8d0], rax
mov dword [0x1400fb8f8], 8
jmp 0x140014ffa
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov cl, 1
mov byte [rax + 0x39c], cl
mov byte [rax + 0x399], cl
xor eax, eax
mov cl, byte [rsp + rax + 0x20]
mov edx, dword [0x1400f8c60]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
mov byte [rdx + rax + 0x391], cl
inc rax
cmp rax, 8
jne 0x1400151ba
lea rcx, [0x140015a0a]
call fcn.140028cd4
jmp 0x140014fa0
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov cl, 1
mov byte [rax + 0x33c], cl
mov byte [rax + 0x33b], cl
xor eax, eax
lea rcx, [0x1400dda1f]
mov dl, byte [rax + rcx]
mov r8d, dword [0x1400f8c60]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
mov byte [r8 + rax + 0x331], dl
inc rax
cmp rax, 0xa
jne 0x14001521c
lea rcx, [0x1400155a7]
call fcn.140028cd4
jmp 0x140015069
mov eax, dword [0x1400f8c60]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov cl, 1
mov byte [rax + 0x330], cl
mov byte [rax + 0x32d], cl
xor eax, eax
lea rcx, [0x1400dda13]
mov dl, byte [rax + rcx]
mov r8d, dword [0x1400f8c60]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
mov byte [r8 + rax + 0x321], dl
inc rax
cmp rax, 0xc
jne 0x14001527f
lea rcx, [0x140015580]
call fcn.140028cd4
jmp 0x1400150ed
lea rcx, [0x1400fb8d8]
call fcn.14002899c
cmp dword [0x1400fb8d8], 0xffffffff
jne 0x140014e4a
call fcn.1400152f6
mov rcx, rax
call fcn.14001539c
mov qword [0x1400fb8d0], rax
lea rcx, [0x1400fb8d8]
call fcn.140028a14
jmp 0x140014e4a