Function at 0x14012eed0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x98
mov qword [rsp + 0x70], rcx
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
call fcn.14000efc9
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x88], rax
add rax, 0x60
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x94], 0
mov rax, rsp
mov qword [rsp + 0x80], rax
lea rdx, [rsp + 0x94]
mov qword [rax + 0x40], rdx
mov qword [rax + 0x58], 0
mov qword [rax + 0x50], 0
mov qword [rax + 0x48], 0
mov qword [rax + 0x38], 0
mov qword [rax + 0x30], 0
mov qword [rax + 0x28], 0
mov qword [rax + 0x20], 0
xor eax, eax
mov r9d, eax
mov rdx, r9
mov r8, r9
call fcn.1400eea1f
mov ecx, eax
mov rax, qword [rsp + 0x88]
mov al, byte [rax + 0x60]
test al, al
setne al
test ecx, ecx
sete cl
or al, cl
test al, 1
jne 0x14012f0a1
mov rcx, qword [rsp + 0x70]
xor eax, eax
mov r9d, eax
lea rax, [rsp + 0x94]
mov rdx, r9
mov r8, r9
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
call fcn.1400eea1f
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
jne 0x14012f0a1
mov eax, dword [0x14027a6d0]
mov ecx, dword [0x14027a6d4]
xor ecx, 0x7ec03434
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x2a332d92
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
or eax, 0x8a56202
or eax, 0x11c2833
cmp eax, 0x1c0e0eb7
je 0x14012f143
mov eax, dword [0x14027a6d8]
xor eax, 0xc1fad473
and eax, dword [0x14027a6dc]
mov ecx, eax
add ecx, 1
mov edx, 0xf6ce83ab
xor edx, 0x9317c54
xor eax, edx
or eax, 0x47b6ddce
add eax, ecx
mov ecx, 0xab016df1
xor edx, edx
div ecx
mov ecx, 0x32213bcd
xor ecx, 0x32213bcd
sub ecx, eax
xor eax, eax
sub eax, 0xfad09e93
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [rsp + 0x6c], eax
call fcn.14012ebf2
mov eax, dword [rsp + 0x6c]
cmp eax, 0xa55ef784
jbe 0x14012f037
jmp 0x14012f0a1
mov eax, dword [0x14027a6e0]
mov ecx, dword [0x14027a6e4]
xor ecx, 0xc425aa28
imul eax, ecx
mov ecx, 0xca476f3e
xor edx, edx
div ecx
mov ecx, 0xcae17764
xor edx, edx
div ecx
mov ecx, 0x1f452fbd
xor ecx, 0x768d7fd0
add eax, ecx
cmp eax, 0x9f6faefe
ja 0x14012f14c
mov eax, dword [0x14027a6e8]
and eax, dword [0x14027a6ec]
mov ecx, 0xd3171b10
xor ecx, 0xfb77bd62
xor eax, ecx
mov ecx, 0xe3726742
xor ecx, 0x57fa8128
add eax, ecx
sub eax, 0xe7730723
sub eax, 0xb488e66a
mov ecx, 0x4dc4f193
xor edx, edx
div ecx
mov ecx, 0x83ffff48
xor ecx, 0xa6eca63b
mov edx, dword [rsp + 0x94]
mov dword [rsp + 0x68], edx
cmp eax, ecx
je 0x14012f0e0
mov eax, dword [rsp + 0x68]
add rsp, 0x98
ret
mov cl, 0x41
adc bl, al
jmp 0x14012f037
and eax, dword [rax]
jmp 0x14012f1cf
cmp byte [rax - 0x77], cl
ror byte [rax - 0x7d], 1
ror byte [rax], 0x48
mov dword [rbp + 0x20], eax
mov rax, qword [rdx + 8]
mov qword [rbp + 0x30], rax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
add rsp, 0x20
add rax, 0x60
mov qword [rbp + 0x28], rax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
mov rcx, qword [rbp + 0x30]
mov r8, qword [rbp + 0x38]
add rsp, 0x20
add rcx, 8
lea rdx, [0x14028a67f]
cmp r8, 0
cmove rcx, rdx
mov qword [rbp + 0x40], rcx
cmp byte [rax + 0x60], 0
jne 0x14012f36c
mov eax, dword [0x14027a6f0]
xor eax, 0x4d3746ad
mov ecx, dword [0x14027a6f4]
xor ecx, 0xffffffff
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0x47fa49f0
xor edx, edx
div ecx
imul eax, eax, 0x113edb0
sub eax, 0xe5c5ad7e
mov ecx, 0x3bdb969
xor ecx, 0xff02ff0
add eax, ecx
add eax, 0xe5c5ad7e
mov ecx, 0x2d4780c
xor ecx, 0xc8d1f508
cmp eax, ecx
jae 0x14012f7f9
mov rcx, qword [rbp + 0x38]
mov eax, dword [0x14027a6f8]
mov edx, 0x2b8c6609
xor edx, 0x463b2be6
xor eax, edx
mov r9d, dword [0x14027a6fc]
xor r9d, 0xfb4e00fe
mov r10d, r9d
xor r10d, 0xffffffff
mov r8d, eax
and r8d, r10d
mov edx, eax
or edx, r10d
xor edx, 0xffffffff
imul edx, r8d
mov r8d, eax
and r8d, r9d
or eax, r9d
imul eax, r8d
add eax, edx
mov edx, 0xc49e8eb1
xor edx, 0x45d221c0
sub eax, edx
sub eax, 0x3ea71778
and eax, 0x76d036ff
cmp rcx, 0
setl cl
mov byte [rbp - 0x11], cl
cmp eax, 0xee44f326
je 0x14012f296
mov al, byte [rbp - 0x11]
test al, 1
jne 0x14012f31f
jmp 0x14012f343
mov rcx, qword [rbp + 0x38]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14001a720
add rsp, 0x20
jmp 0x14012f36c
mov r8, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x40]
lea rcx, [rbp + 0x48]
sub rsp, 0x20
call fcn.1400eb9c0
add rsp, 0x20
mov rax, qword [rbp + 0x48]
mov rcx, qword [rbp + 0x50]
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x20], rax
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x20]
mov qword [rbp - 0x38], rdx
mov qword [rbp - 0x30], rcx
mov al, byte [rax]
mov cl, 0x40
xor cl, 0x40
cmp al, cl
jne 0x14012f3b3
mov rcx, qword [rbp]
mov rax, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x38]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.1400eb030
add rsp, 0x20
mov qword [rbp - 0x40], rax
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp - 0x40]
mov qword [rbp - 0x48], rcx
mov al, byte [rax]
mov cl, 0x87
xor cl, 0x87
cmp al, cl
jne 0x14012f640
mov r9, qword [rbp + 8]
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x10]
xor eax, eax
mov r8d, eax
sub rsp, 0x30
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], 0
call fcn.1400eecf2
add rsp, 0x30
mov ecx, eax
mov rax, qword [rbp + 0x18]
mov dword [rbp - 0x4c], ecx
cmp byte [rax], 0
jne 0x14012f640
mov eax, dword [rbp - 0x4c]
mov rdx, qword [rbp + 0x20]
mov ecx, 0xbc55d872
xor ecx, 0xbc55d872
mov rdx, qword [rdx]
mov qword [rbp - 0x58], rdx
cmp rdx, 0
sete dl
mov byte [rbp - 0x4d], dl
cmp eax, ecx
jne 0x14012f5e9
mov eax, dword [0x14027a700]
mov ecx, dword [0x14027a704]
xor ecx, 0x80da852b
imul eax, ecx
and eax, eax
xor eax, 0xffffffff
mov ecx, 0x6a40d7d1
xor ecx, 0x2320489a
mov edx, 0xea068121
xor edx, 0x15f97ede
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x49609f4b
or ecx, edx
mov edx, 0xbbfdd5b0
xor edx, 0x44022a4f
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
and ecx, 0xd73e8d63
shl ecx, 1
xor eax, 0xd73e8d63
add eax, ecx
xor eax, 0x2691e91
mov ecx, 0xd2e7487
xor ecx, 0xe42ea045
cmp eax, ecx
jae 0x14012f802
mov ecx, dword [0x14027a708]
mov r8d, dword [0x14027a70c]
xor r8d, 0x8e9bf797
mov edx, 0x303cf709
xor edx, 0xcfc308f6
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov r9d, 0xce6936d6
xor r9d, 0x3196c929
mov edx, r8d
xor edx, r9d
or eax, edx
mov r9d, 0xdac27675
xor r9d, 0x253d898a
mov edx, r8d
xor edx, r9d
mov r9d, 0x84754828
xor r9d, 0x7b8ab7d7
xor r8d, r9d
or edx, r8d
and ecx, edx
mov edx, 0x367d81bd
xor edx, 0xc9827e42
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0x609f2daf
xor ecx, 0xb2a07c13
or eax, ecx
imul eax, eax, 0xf9bc270d
mov ecx, 0x2e12af3a
xor ecx, 0xdc5f5ad8
xor edx, edx
div ecx
cmp eax, 0xdbc1975
je 0x14012f4b6
mov cl, byte [rbp - 0x4d]
mov al, 1
test cl, 1
mov byte [rbp - 0x59], al
jne 0x14012f7ea
jmp 0x14012f575
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rcx]
xor rdx, 0xffffffffffffffff
mov rax, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rax, r8
mov r8, 0xffffffffffffffff
movabs r9, 0xf9ddf596b7a88e10
xor r8, r9
or rdx, rax
movabs rax, 0x8243dbd81f598b9e
movabs r9, 0x7b9e2e4ea8f1058e
xor rax, r9
or rax, r8
xor rdx, 0xffffffffffffffff
and rdx, rax
mov al, 1
cmp rdx, 0
mov qword [rbp - 0x68], rcx
mov cl, al
mov byte [rbp - 0x5a], cl
mov byte [rbp - 0x59], al
je 0x14012f7cd
jmp 0x14012f7ea
mov cl, byte [rbp - 0x4d]
xor eax, eax
test cl, 1
mov byte [rbp - 0x59], al
jne 0x14012f7ea
jmp 0x14012f5ff
mov rcx, qword [rbp - 0x58]
mov rax, qword [rcx]
mov r8, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor r8, rdx
mov rdx, rax
xor rdx, r8
and rdx, rax
xor eax, eax
cmp rdx, 0
mov qword [rbp - 0x68], rcx
mov cl, al
mov byte [rbp - 0x5a], cl
mov byte [rbp - 0x59], al
je 0x14012f7cd
jmp 0x14012f7ea
mov eax, dword [0x14027a710]
mov ecx, 0xad255c4
xor ecx, 0x5fa944b5
xor eax, ecx
mov ecx, dword [0x14027a714]
mov edx, 0x9b420881
xor edx, 0x2841c066
xor ecx, edx
add eax, ecx
mov ecx, 0xc7dd25cf
xor ecx, 0xb5653484
xor edx, edx
div ecx
mov ecx, 0x4be7a8cc
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, 0x3d04a3c7
sub eax, ecx
cmp eax, 0xc3ee7131
je 0x14012f80b
mov rdx, qword [rbp + 0x20]
mov eax, dword [0x14027a718]
mov ecx, dword [0x14027a71c]
xor ecx, 0x712f8519
sub eax, 0xcb62e25d
sub eax, ecx
add eax, 0xcb62e25d
mov esi, eax
xor esi, 0xffffffff
and esi, 0xf19b1f91
mov ecx, 0xf502c836
xor ecx, 0x499d7a7
mov r8d, 0xf3812a9d
xor r8d, 0xc7ed562
xor ecx, r8d
and eax, ecx
or esi, eax
add esi, 0xa27363ae
mov ecx, esi
xor ecx, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x24d0df39
mov r8d, 0x418219e2
xor r8d, 0x58221983
mov eax, 0xbaa807e5
xor eax, 0x4557f81a
xor r8d, eax
mov eax, ecx
and eax, 0x19a00061
and esi, r8d
mov r11d, 0xb62b4e67
xor r11d, 0xaf8b4e06
mov r10d, r9d
and r10d, r11d
mov r11d, 0xe6a11e0d
xor r11d, 0xc271c134
and r11d, r8d
or eax, esi
or r10d, r11d
xor eax, r10d
or ecx, r9d
xor ecx, 0xffffffff
or r8d, 0x19a00061
and ecx, r8d
or eax, ecx
mov ecx, 0xac315ad
xor ecx, 0xf9696b7d
mov rdx, qword [rdx]
mov qword [rbp - 0x78], rdx
cmp rdx, 0
sete dl
mov byte [rbp - 0x69], dl
cmp eax, ecx
jb 0x14012f80b
mov cl, byte [rbp - 0x69]
xor eax, eax
test cl, 1
mov byte [rbp - 0x59], al
jne 0x14012f7ea
jmp 0x14012f794
mov rcx, qword [rbp - 0x78]
mov rdx, qword [rcx]
movabs rax, 0x7c3541b840b0e0ad
movabs r8, 0x3c3541b840b0e0ad
xor rax, r8
and rdx, rax
xor eax, eax
cmp rdx, 0
mov qword [rbp - 0x68], rcx
mov cl, al
mov byte [rbp - 0x5a], cl
mov byte [rbp - 0x59], al
jne 0x14012f7ea
mov rcx, qword [rbp - 0x68]
mov al, byte [rbp - 0x5a]
mov byte [rbp - 0x79], al
sub rsp, 0x20
call fcn.14001d1d6
mov al, byte [rbp - 0x79]
add rsp, 0x20
mov byte [rbp - 0x59], al
mov al, byte [rbp - 0x59]
and al, 1
movzx eax, al
lea rsp, [rbp + 0x58]
pop rsi
pop rbp
ret
out dx, eax
add al, 0x79
push rbp
jmp 0x14012f296
bnd jg 0x14012f855
add ch, cl
stosd dword [rdi], eax
cld
invalid
invalid
add byte [rax], al