Function at 0x14012bf50
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x60
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rcx
mov rax, rcx
add rax, 8
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x58], rax
cmp rax, 0
je 0x14012bfa4
mov rcx, qword [rsp + 0x58]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
je 0x14012bfa4
mov rcx, qword [rsp + 0x48]
call fcn.140014e3e
mov r8, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov r9, qword [rax]
mov qword [rsp + 0x30], r9
mov rax, r8
xor rax, 0xffffffffffffffff
mov rdx, r9
add rdx, rax
add rdx, 1
mov qword [rsp + 0x38], rdx
movabs rcx, 0x69b5233c031a7247
movabs rax, 0x964adcc3fce58db8
xor rcx, rax
mov rax, rdx
xor rax, rcx
movabs rcx, 0x752015781d1ccd1
and rax, rcx
movabs r11, 0xbca971c8240b78d8
movabs rcx, 0xbbfb709fa5dab409
xor r11, rcx
movabs rcx, 0xb2349a434d53312c
movabs r10, 0x4dcb65bcb2acced3
xor rcx, r10
xor r11, rcx
mov r10, rdx
and r10, r11
mov rcx, r9
xor rcx, 0xffffffffffffffff
movabs rsi, 0x752015781d1ccd1
and rcx, rsi
and r9, r11
or rax, r10
or rcx, r9
xor rax, rcx
movabs rcx, 0xa9e501b959ac07fc
movabs r9, 0xa9e501b959ac07fc
xor rcx, r9
cmp rax, rcx
setl al
mov rcx, rdx
or rcx, rcx
xor rcx, 0xffffffffffffffff
mov r9, r8
xor r9, 0xffffffffffffffff
movabs r11, 0x5bc7f89d33293ec2
movabs r10, 0xa4380762ccd6c13d
xor r11, r10
mov r10, r8
xor r10, r11
and r9, r10
xor rcx, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
and rcx, r9
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rdx, r8
or rcx, rdx
xor rcx, 0xffffffffffffffff
cmp rcx, 0xffffffffffffffff
setg dl
xor al, 0xff
xor dl, 0xff
mov cl, 1
xor cl, 1
or al, dl
or cl, 1
xor al, 0xff
and al, cl
test al, 1
jne 0x14012c0df
jmp 0x14012c0e9
call fcn.140009cc0
jmp 0x14012c265
mov eax, dword [0x1401fb338]
mov ecx, dword [0x1401fb33c]
xor ecx, 0xb95f6bb8
imul eax, ecx
mov ecx, eax
and ecx, 0x8bb75e8
xor ecx, 0xffffffff
and eax, 0x8bb75e8
xor eax, 0xffffffff
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xebaa1ebb
xor edx, 0x1455e144
xor ecx, edx
or eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x4d8d1cd
mov edx, 0xffffffff
xor edx, 0x4d8d1cd
or ecx, edx
and eax, ecx
mov ecx, 0x69fcbcbb
xor ecx, 0x96034344
xor eax, ecx
imul eax, eax, 0x5e27b611
cmp eax, 0xaf2f8f53
je 0x14012c270
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
mov eax, dword [0x1401fb340]
mov ecx, dword [0x1401fb344]
xor ecx, 0x49fe85c5
xor edx, edx
div ecx
or eax, 0x12ee6cda
xor eax, 0x1c3bcb5d
sub eax, 0x64d5e00b
mov ecx, 0x14ee9773
xor ecx, 0xb88ccc45
movabs rdx, 0x74af0384bd5bdb7
movabs r10, 0xf8b50fc7b42a4248
xor rdx, r10
cmp r8, rdx
setg dl
cmp r8, r9
setl r8b
and dl, r8b
mov byte [rsp + 0x2f], dl
cmp eax, ecx
jae 0x14012c165
mov al, byte [rsp + 0x2f]
test al, 1
jne 0x14012c24c
jmp 0x14012c1e3
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
movabs r8, 0x1d24a429dff388d
movabs rax, 0xfe2db5bd6200c772
xor r8, rax
mov rax, rdx
and rax, r8
movabs r8, 0xe234bceaab16410e
movabs r9, 0xe234bceaab16410c
xor r8, r9
imul rax, r8
movabs r8, 0xc2c7b1c73aba6365
movabs r9, 0x3d384e38c5459c9a
xor r8, r9
xor rdx, r8
add rdx, rax
call fcn.140013c92
jmp 0x14012c265
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
add rax, 8
add rax, rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
add rsp, 0x60
pop rsi
ret
mov ecx, 0xe9150c3b
in al, dx
invalid