Function at 0x14000ec20
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0xb0
lea rbp, [rsp + 0x80]
mov qword [rbp], r8
mov qword [rbp + 8], rdx
mov qword [rbp + 0x18], rcx
mov eax, 0x10
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x10], rax
sub rsp, 0x20
call fcn.14000c113
mov rcx, qword [rbp + 0x18]
add rsp, 0x20
add rax, 0x50
mov qword [rbp + 0x20], rax
mov rax, qword [rcx]
mov qword [rbp + 0x28], rax
mov rcx, rax
add rcx, 1
xor rax, 0xffffffffffffffff
movabs rdx, 0x68cd90fa6deb1e9b
movabs r8, 0x68cd90fa6deb1e98
xor rdx, r8
or rax, rdx
add rax, rcx
cmp rax, 1
je 0x14000f56c
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x28]
mov rdi, rdx
xor rdi, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r8, 0xfffffffffffffffc
or rdi, r8
movabs r8, 0xc07f9c93618a7845
movabs r9, 0x3f80636c9e7587ba
xor r8, r9
xor rdx, r8
mov r8, 0xffffffffffffffff
xor r8, 0xfffffffffffffffc
or rdx, r8
xor rdi, 0xffffffffffffffff
movabs r8, 0x31220470d63df190
movabs r9, 0xceddfb8f29c20e6f
xor r8, r9
xor rdx, r8
or rdi, rdx
mov r8, rdi
xor r8, 0xffffffffffffffff
movabs r10, 0x22cbb57ee3f486c3
movabs rdx, 0x22cbb57ee3f486c2
xor r10, rdx
movabs rdx, 0x2096eddfe0980419
movabs r9, 0xdf6912201f67fbe6
xor rdx, r9
xor r10, rdx
mov r9, 0xffffffffffffffff
movabs rdx, 0x820152be775b3d00
xor r9, rdx
movabs r11, 0x820152be775b3d00
mov rdx, r8
and rdx, r11
and rdi, r9
movabs rsi, 0x2c7a6cc22aa77f4d
movabs r11, 0xae7b3e7c5dfc424d
xor rsi, r11
mov r11, r10
and r11, rsi
mov rsi, r9
and rsi, 1
or rdx, rdi
or r11, rsi
xor rdx, r11
or r8, r10
xor r8, 0xffffffffffffffff
movabs r10, 0x820152be775b3d00
or r9, r10
and r8, r9
or rdx, r8
mov qword [rcx], rdx
mov rcx, rax
add rcx, 0x38
mov qword [rbp - 0x10], rcx
mov rdx, qword [rax + 0x38]
movabs rax, 0xe72788771c76a1b6
movabs rcx, 0xe72788771c76a1b7
xor rax, rcx
mov rcx, rdx
add rcx, rax
mov qword [rbp - 8], rcx
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, 0xffffffffffffffff
movabs r9, 0x6c4208c93b4d9966
movabs r8, 0x93bdf736c4b26699
xor r9, r8
mov r8, rdx
xor r8, r9
or rax, r8
movabs r8, 0xe5edf68c115f40aa
movabs r9, 0x1a120973eea0bf55
xor r8, r9
xor rcx, r8
xor rdx, 0xffffffffffffffff
or rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
cmp rax, 0
jl 0x14000f55f
mov rdx, qword [rbp + 0x28]
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 8]
mov qword [rax], rcx
movabs rcx, 0xda720b22f8a42ff3
movabs rax, 0xda720b22f8a42ff7
xor rcx, rax
sar rdx, cl
movabs rcx, 0x89e5467733485009
movabs rax, 0xa1d4de553ec31c72
xor rcx, rax
mov rax, rdx
sub rax, rcx
movabs rcx, 0xfd63e6ce44632bb1
movabs r8, 0xfd63e6ce44632bb0
xor rcx, r8
add rax, rcx
movabs rcx, 0x283198220d8b4c7b
add rax, rcx
mov qword [rbp - 0x18], rax
xor rdx, 0xffffffffffffffff
mov rcx, rax
xor rcx, rdx
movabs r8, 0xe86b795a1f6fa34
movabs r9, 0xf179486a5e0905cb
xor r8, r9
xor rcx, r8
or rax, rdx
and rax, rcx
cmp rax, 0
jl 0x14000f55f
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp]
mov rdx, rcx
add rdx, 0x48
mov qword [rbp - 0x28], rdx
mov r8, qword [rcx + 0x48]
movabs rcx, 0x668b86b355bd7956
movabs rdx, 0x668b86b355bd7956
xor rcx, rdx
sub rcx, rax
mov rdx, r8
sub rdx, rcx
mov qword [rbp - 0x20], rdx
mov rcx, rdx
xor rcx, r8
xor rdx, rax
movabs rax, 0xd7c3eedcc0358584
movabs r8, 0x283c11233fca7a7b
xor rax, r8
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jl 0x14000f55f
mov r8, qword [rbp]
mov rdx, qword [rbp + 8]
mov rcx, qword [rbp + 0x18]
mov rax, qword [rbp - 0x28]
mov r9, qword [rbp - 0x20]
mov qword [rax], r9
sub rsp, 0x20
call fcn.14000f610
mov rax, qword [rbp + 0x20]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x7f
xor cl, 0x7f
cmp al, cl
jne 0x14000f56c
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x10]
add rcx, 8
mov qword [rbp - 0x38], rcx
add rax, 0x40
mov qword [rbp - 0x30], rax
mov rax, qword [rbp]
cmp qword [rax], 0
jle 0x14000f56c
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp]
sub rsp, 0x20
call fcn.14000e8b0
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp - 0x38]
add rsp, 0x20
mov rax, qword [rax]
mov rcx, qword [rcx]
mov qword [rbp - 0x58], rcx
mov rax, qword [rax]
mov rcx, rax
add rcx, 0xfffffffffffffff0
mov qword [rbp - 0x50], rcx
mov r8, qword [rax - 0x10]
mov qword [rbp - 0x48], r8
movabs rcx, 0x1825b1e0a1d742ef
movabs rax, 0xe7da4e1f5e28bd1f
xor rcx, rax
mov rax, r8
add rax, rcx
mov qword [rbp - 0x40], rax
mov rdx, rax
and rdx, r8
shl rdx, 1
mov rcx, rax
add rcx, r8
sub rcx, rdx
cmp rcx, 0
setl dl
cmp rax, 0xffffffffffffffff
setg cl
mov al, cl
and al, dl
xor al, 0xff
and cl, dl
xor cl, 0xff
and al, cl
xor al, 0xff
test al, 1
jne 0x14000f55f
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x40]
mov qword [rcx], rdx
mov rdx, qword [rax]
mov rax, rdx
add rax, 1
mov qword [rbp - 0x60], rax
movabs rcx, 0x444a0b4c979e4aef
movabs r8, 0xbbb5f4b36861b510
xor rcx, r8
xor rdx, rcx
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
movabs r8, 0xf7edb72642acda44
xor rcx, r8
or rax, rdx
movabs rdx, 0xf7edb72642acda44
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jl 0x14000f55f
mov rax, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x60]
mov qword [rcx], rdx
and rax, 3
movabs rcx, 0xd0fdaea96d7ac5bd
movabs rdx, 0xd0fdaea96d7ac5bc
xor rcx, rdx
cmp rax, rcx
je 0x14000f458
mov eax, dword [0x140216998]
sub eax, dword [0x14021699c]
mov ecx, 0xb07954c2
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0x940c2eb2
xor edx, 0x7c015045
mov r8d, 0x7605d618
xor r8d, 0x89fa29e7
xor edx, r8d
and eax, edx
or ecx, 0xe80d7ef7
mov edx, 0x830205db
xor edx, 0x7cfdfa24
xor ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xe1eadfe8
xor ecx, 0x66af01f5
xor eax, ecx
cmp eax, 0x8a61165b
je 0x14000f5e7
mov rcx, qword [rbp - 0x10]
mov r8, qword [rbp - 0x40]
mov edx, dword [0x1402169a0]
or edx, dword [0x1402169a4]
mov eax, edx
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x291e7051
and eax, r9d
xor edx, 0xffffffff
mov r9d, 0xdfecb790
xor r9d, 0xf6f2c7c1
mov r10d, 0x625eb983
xor r10d, 0x9da1467c
xor r9d, r10d
and edx, r9d
or eax, edx
xor eax, 0xffffffff
mov r9d, 0x38d610b4
xor edx, edx
div r9d
mov rdx, qword [rbp - 0x50]
mov r9d, eax
mov eax, r9d
and eax, 0x62325c42
mov r10d, 0xacd4c7d9
xor r10d, 0xcee69b9b
xor r9d, r10d
or eax, r9d
movabs r9, 0xc762f5f888581b63
movabs r10, 0x389d0a0777a7e49f
xor r9, r10
and r8, r9
or r8, 1
mov qword [rdx], r8
mov r8, qword [rcx]
mov rcx, r8
add rcx, 1
mov qword [rbp - 0x70], rcx
mov rdx, r8
and rdx, rdx
xor rdx, 0xffffffffffffffff
and rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
and r9, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
and r8, r9
xor r8, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
or rdx, r8
movabs r8, 0xa90952aaa458cf16
movabs r9, 0x56f6ad555ba730e9
xor r8, r9
xor rcx, r8
xor rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
movabs r9, 0x49722010897a4cee
xor r8, r9
or rcx, rdx
movabs rdx, 0xe3cc9523bb5cf0d0
movabs r9, 0xaabeb5333226bc3e
xor rdx, r9
or rdx, r8
xor rcx, 0xffffffffffffffff
and rcx, rdx
cmp rcx, 0
setl cl
mov byte [rbp - 0x61], cl
cmp eax, 0xe3518975
je 0x14000f164
mov al, byte [rbp - 0x61]
test al, 1
jne 0x14000f55f
jmp 0x14000f2bf
mov rdx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x70]
mov qword [rax], rcx
sar rdx, 4
xor eax, eax
mov ecx, eax
sub rcx, 2
mov rax, rdx
sub rax, rcx
mov qword [rbp - 0x78], rax
movabs rcx, 0xf43c75582837c8a1
movabs r8, 0xbc38aa7d7c8375e
xor rcx, r8
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
cmp rax, 0
jl 0x14000f55f
mov r8, qword [rbp - 0x78]
mov rax, qword [rbp - 0x28]
mov rdx, qword [rax]
movabs rax, 0x5f64e1e61abd47fe
mov r9, rdx
sub r9, rax
add r9, r8
movabs rax, 0x5f64e1e61abd47fe
add r9, rax
mov qword [rbp - 0x80], r9
mov rax, r9
xor rax, 0xffffffffffffffff
movabs rcx, 0x794723c06459750c
and rax, rcx
movabs r11, 0x51c8723eaf35a448
movabs rcx, 0x288f51fecb6cd144
xor r11, rcx
movabs rcx, 0xe05778c9c2b4c596
movabs r10, 0x1fa887363d4b3a69
xor rcx, r10
xor r11, rcx
mov r10, r9
and r10, r11
mov rcx, rdx
xor rcx, 0xffffffffffffffff
movabs rsi, 0x794723c06459750c
and rcx, rsi
and rdx, r11
or rax, r10
or rcx, rdx
xor rax, rcx
mov rcx, r9
xor rcx, 0xffffffffffffffff
movabs rdx, 0xa2875cf336b7263e
and rcx, rdx
movabs r10, 0x7213fa11a0ee232d
movabs rdx, 0xd094a6e296590513
xor r10, rdx
movabs rdx, 0x7b2be259490baf18
movabs r11, 0x84d41da6b6f450e7
xor rdx, r11
xor r10, rdx
and r9, r10
mov rdx, r8
xor rdx, 0xffffffffffffffff
movabs r11, 0xa2875cf336b7263e
and rdx, r11
and r8, r10
or rcx, r9
or rdx, r8
xor rcx, rdx
and rax, rcx
cmp rax, 0
jl 0x14000f55f
mov r8, qword [rbp]
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x28]
mov r9, qword [rbp - 0x80]
mov qword [rax], r9
sub rsp, 0x20
call fcn.14000f610
mov rax, qword [rbp + 0x20]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14000f56c
mov eax, dword [0x1402169a8]
mov ecx, 0x7948c0ac
xor ecx, 0xed42b048
xor eax, ecx
mov edx, dword [0x1402169ac]
mov ecx, eax
xor ecx, edx
xor edx, 0xffffffff
and eax, edx
shl eax, 1
sub eax, ecx
or eax, 0xe0990fdd
mov edx, 0xffffffff
xor edx, 0xb4b9550c
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xb4b9550c
add eax, edx
sub eax, ecx
mov ecx, 0xdd1d8ffd
xor edx, edx
div ecx
mov ecx, 0x1bf11519
xor ecx, 0xca13a5e8
cmp eax, ecx
ja 0x14000f5f0
mov eax, dword [0x1402169b0]
mov r8d, dword [0x1402169b4]
xor r8d, 0x9bb6c0dd
mov edx, 0x28b4354
xor edx, 0xfd74bcab
mov ecx, eax
xor ecx, edx
mov edx, r8d
and edx, ecx
mov ecx, 0x378e6126
xor ecx, 0xc8719ed9
mov r9d, r8d
xor r9d, ecx
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xeaf3d846
xor ecx, 0x4480bc85
mov edx, 0xe09686c2
xor edx, 0x1f69793d
xor ecx, edx
add eax, ecx
mov ecx, 0x16546c64
xor ecx, 0x16546c65
add eax, ecx
imul eax, eax, 0x601a8453
mov edx, 0xfea847d8
xor edx, 0x2e4b1fa9
mov ecx, eax
and ecx, edx
shl ecx, 1
add eax, 0xd0e35871
sub eax, ecx
cmp eax, 0x49bbc7e8
je 0x14000f4bb
jmp 0x14000efad
sub rsp, 0x20
call fcn.140008bc6
add rsp, 0x20
mov eax, dword [0x1402169b8]
xor edx, edx
div dword [0x1402169bc]
mov ecx, 0x8a020d90
xor edx, edx
div ecx
mov ecx, 0xf5c48e9d
xor edx, edx
div ecx
imul eax, eax, 0x6715ea68
cmp eax, 0xe231f0f6
ja 0x14000f5f9
mov eax, dword [0x1402169c0]
mov ecx, 0xb80e4322
xor ecx, 0xe85dee7d
xor eax, ecx
or eax, dword [0x1402169c4]
mov ecx, 0xe536967e
xor edx, edx
div ecx
imul ecx, eax, 0x1406b336
mov eax, ecx
and eax, 0x9e8a4b32
xor ecx, 0x9e8a4b32
or eax, ecx
cmp eax, 0xb81c11c0
ja 0x14000f5f9
lea rsp, [rbp + 0x30]
pop rdi
pop rsi
pop rbp
ret
movabs al, byte [0xfffffb74e958a3aa]
out dx, eax
lahf
movsd dword [rdi], dword [rsi]
xchg ebx, eax
jmp 0x14000f4bb
jo 0x14000f671
add ebx, edi
jmp 0x14000f59d
add dword [rbx - 0x2ef6000f], eax