Function at 0x14009a610
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
movzx r13d, word [rcx + 0x48]
xor r15d, r15d
mov r12b, dl
and r12b, 1
mov rdi, rdx
xor r13w, 0x7b
and rdi, 0xfffffffffffffffe
mov rbx, rcx
mov qword [rax + 0x18], r15
mov byte [rsp + 0x90], r12b
cmp r12b, r15b
jne 0x14009a694
movzx edx, word [rcx + 0x48]
bts edx, 0x10
call fcn.14004a49c
mov word [rbx + 0xc8], r15w
movzx eax, word [rdi]
cmp word [rbx + 0x92], ax
je 0x14009a68e
cmp word [rbx + 0x94], ax
je 0x14009a68e
cmp word [rbx + 0x8a], ax
je 0x14009a68e
cmp word [rbx + 0x90], ax
jne 0x14009a694
add rdi, 2
jmp 0x14009a667
test byte [rbx + 0x10], 0x80
mov ebp, r15d
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x30], r15
je 0x14009a6b8
lea r14, [rsp + 0x30]
cmp byte [0x1400f1da3], r15b
jne 0x14009a6bd
lea r14, [rsp + 0x38]
movzx eax, word [rbx + 0x88]
cmp word [rdi], ax
je 0x14009aca8
mov r12d, 9
test byte [rbx + 0x11], 1
je 0x14009a6e6
mov rcx, qword [rsp + 0xa0]
call fcn.140044ed8
test byte [rbx + 0xc8], 0x42
jne 0x14009aca0
movzx esi, word [rbx + 0x88]
mov rcx, rdi
mov qword [rsp + 0x98], rdi
call fcn.14004b91c
cmp word [rax], si
je 0x14009aca0
cmp ebp, r15d
jg 0x14009aa87
movzx edx, word [rbx + 0x96]
movzx eax, word [rdi]
cmp dx, ax
jne 0x14009a810
add rdi, 2
mov r9, rdi
mov qword [rsp + 0x98], rdi
movzx eax, word [rdi]
cmp word [rbx + 0x92], ax
je 0x14009a765
cmp word [rbx + 0x94], ax
je 0x14009a765
cmp word [rbx + 0x8a], ax
je 0x14009a765
cmp word [rbx + 0x90], ax
jne 0x14009a76b
add rdi, 2
jmp 0x14009a736
cmp word [rdi], si
je 0x14009a6d3
lea rdx, [rbx + 0xaa]
mov rcx, rdi
call fcn.14004a46c
cmp eax, r15d
je 0x14009a6d3
lea rdx, [rbx + 0x9a]
mov rcx, rdi
call fcn.14004a46c
cmp eax, r15d
je 0x14009a6d3
mov rdx, qword [rbx + 0x40]
lea rax, [0x1400d63f4]
mov qword [rsp + 0x98], r9
lea r8, [rsp + 0x98]
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.14008e1e8
mov rdi, qword [rsp + 0x98]
movzx eax, word [rdi]
cmp word [rbx + 0x92], ax
je 0x14009a802
cmp word [rbx + 0x94], ax
je 0x14009a802
cmp word [rbx + 0x8a], ax
je 0x14009a802
cmp word [rbx + 0x90], ax
jne 0x14009a6d3
add rdi, 2
mov qword [rsp + 0x98], rdi
jmp 0x14009a7d7
cmp ax, word [rbx + 0xba]
jne 0x14009aa87
movzx eax, word [rbx + 0xbc]
cmp word [rdi + 2], ax
jne 0x14009aa87
movzx r9d, word [rbx + 0x92]
lea rax, [rdi + 4]
mov qword [rsp + 0x98], rax
movzx ecx, word [rax]
cmp r9w, cx
je 0x14009a866
cmp word [rbx + 0x94], cx
je 0x14009a866
cmp word [rbx + 0x8a], cx
je 0x14009a866
cmp word [rbx + 0x90], cx
jne 0x14009a86c
add rax, 2
jmp 0x14009a83a
movzx ecx, word [rax]
cmp cx, si
je 0x14009a8a3
cmp cx, word [rbx + 0x8a]
je 0x14009a8a3
cmp cx, word [rbx + 0x90]
je 0x14009a8a3
cmp dx, cx
je 0x14009a8a3
add rax, 2
mov qword [rsp + 0x98], rax
mov cx, word [rax]
cmp cx, word [rbx + 0x88]
jne 0x14009a874
movzx ecx, word [rbx + 0x94]
movzx edx, word [rbx + 0x8a]
movzx r8d, word [rbx + 0x90]
mov rsi, rax
cmp r9w, word [rsi]
je 0x14009a8d2
cmp cx, word [rsi]
je 0x14009a8d2
cmp dx, word [rsi]
je 0x14009a8d2
cmp r8w, word [rsi]
jne 0x14009a8d8
add rsi, 2
jmp 0x14009a8bc
cmp r13w, word [rsi]
jne 0x14009a9f8
sub rax, rdi
lea rcx, [rsp + 0xa8]
mov rdx, rdi
sar rax, 1
mov r8d, eax
call fcn.140058944
mov r11, qword [rsp + 0x98]
mov r9, qword [rsp + 0xa8]
sub r11, rdi
sar r11, 1
dec r11d
movsxd rcx, r11d
cmp rcx, r15
jl 0x14009a92b
movzx eax, word [rbx + 0x48]
xor word [r9 + rcx*2], ax
sub rcx, 1
jns 0x14009a91c
add rsi, 2
mov r10, rsi
mov qword [rsp + 0x98], rsi
movzx eax, word [r10]
cmp word [rbx + 0x92], ax
je 0x14009a962
cmp word [rbx + 0x94], ax
je 0x14009a962
cmp word [rbx + 0x8a], ax
je 0x14009a962
cmp word [rbx + 0x90], ax
jne 0x14009a970
add r10, 2
mov qword [rsp + 0x98], r10
jmp 0x14009a93a
movzx eax, word [rbx + 0x88]
cmp word [r10], ax
je 0x14009a9e3
lea rdx, [rbx + 0xaa]
mov rcx, r10
call fcn.14004a46c
cmp eax, r15d
je 0x14009a9e3
lea rdx, [rbx + 0x9a]
mov rcx, r10
call fcn.14004a46c
cmp eax, r15d
je 0x14009a9e3
mov rdx, qword [rbx + 0x40]
mov qword [rsp + 0x20], r9
lea r8, [rsp + 0x98]
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x98], rsi
call fcn.14008e1e8
mov rdi, qword [rsp + 0x98]
lea rcx, [rsp + 0xa8]
call fcn.140044f24
jmp 0x14009a6d3
lea rcx, [rsp + 0xa8]
call fcn.140044f24
mov rax, qword [rsp + 0x98]
movzx ecx, word [rax]
movzx edx, word [rbx + 0x92]
cmp cx, dx
je 0x14009aa45
cmp cx, word [rbx + 0x94]
je 0x14009aa45
cmp cx, word [rbx + 0x8a]
je 0x14009aa45
cmp cx, word [rbx + 0x90]
jne 0x14009aa4e
jmp 0x14009aa45
cmp word [rbx + 0x8a], cx
je 0x14009aa4e
cmp word [rbx + 0x90], cx
je 0x14009aa4e
add rax, 2
mov qword [rsp + 0x98], rax
mov cx, word [rax]
cmp word [rbx + 0x88], cx
jne 0x14009aa24
movzx ecx, word [rax]
cmp dx, cx
je 0x14009aa71
cmp word [rbx + 0x94], cx
je 0x14009aa71
cmp word [rbx + 0x8a], cx
je 0x14009aa71
cmp word [rbx + 0x90], cx
jne 0x14009aa7f
add rax, 2
mov qword [rsp + 0x98], rax
jmp 0x14009aa4e
mov rdi, rax
jmp 0x14009a6d3
lea r9, [rsp + 0x98]
lea rdx, [rsp + 0xa0]
mov r8, rdi
mov rcx, rbx
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x98], r15
mov byte [rsp + 0x20], r15b
call fcn.1400152e0
cmp word [rax], r15w
je 0x14009ac65
cmp word [rax], 0x2f
je 0x14009ac65
cmp word [rax], 0x3b
je 0x14009ac65
cmp word [rax], 0x60
je 0x14009ac65
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x98]
mov r9, rax
mov rcx, rbx
call fcn.1400566c4
lea rdx, str._SUB
mov r8d, 4
mov rcx, rax
mov rdi, rax
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, r15d
jne 0x14009ab3c
movzx eax, word [rdi + 8]
cmp r12w, ax
ja 0x14009ab25
cmp ax, 0xd
jbe 0x14009ab35
mov esi, 0x20
cmp si, ax
je 0x14009ab35
cmp ax, r15w
jne 0x14009ab41
inc ebp
jmp 0x14009ac65
mov esi, 0x20
lea rdx, str._END
mov r8d, 4
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, r15d
jne 0x14009ab87
movzx eax, word [rdi + 8]
cmp r12w, ax
ja 0x14009ab6c
cmp ax, 0xd
jbe 0x14009ab77
cmp si, ax
je 0x14009ab77
cmp ax, r15w
jne 0x14009ab87
cmp ebp, r15d
jle 0x14009ac65
dec ebp
jmp 0x14009ac65
cmp ebp, r15d
jg 0x14009ac65
cmp byte [0x1400f1da1], 3
jne 0x14009ac47
lea rcx, str.REGI
mov r8d, 4
mov rdx, rdi
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, r15d
jne 0x14009abd3
movzx eax, word [rdi + 8]
cmp r12w, ax
ja 0x14009abc8
cmp ax, 0xd
jbe 0x14009ac47
cmp si, ax
je 0x14009ac47
cmp ax, r15w
je 0x14009ac47
lea rcx, str.ENVI
mov r8d, 4
mov rdx, rdi
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, r15d
jne 0x14009ac09
movzx eax, word [rdi + 8]
cmp r12w, ax
ja 0x14009abfe
cmp ax, 0xd
jbe 0x14009ac47
cmp si, ax
je 0x14009ac47
cmp ax, r15w
je 0x14009ac47
lea rcx, [0x1400e1290]
mov r8d, 3
mov rdx, rdi
call qword [sym.imp.SHLWAPI.dll_StrCmpNIW]
cmp eax, r15d
jne 0x14009ac3f
movzx eax, word [rdi + 6]
cmp r12w, ax
ja 0x14009ac34
cmp ax, 0xd
jbe 0x14009ac47
cmp si, ax
je 0x14009ac47
cmp ax, r15w
je 0x14009ac47
mov rcx, rbx
call fcn.1400157ac
mov rax, qword [r14]
lea r9, [rsp + 0x98]
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.1400367d4
mov rdi, qword [rsp + 0x98]
movzx eax, word [rdi]
cmp ax, word [rbx + 0x8a]
je 0x14009ac82
cmp ax, word [rbx + 0x90]
jne 0x14009ac90
add rdi, 2
mov qword [rsp + 0x98], rdi
jmp 0x14009ac6d
movzx eax, word [rbx + 0x88]
cmp word [rdi], ax
jne 0x14009a6d3
mov r12b, byte [rsp + 0x90]
cmp r12b, r15b
jne 0x14009acb5
mov word [rbx + 0xc8], r15w
lea rcx, [rsp + 0xa0]
call fcn.140044f24
xor eax, eax
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret