Function at 0x14015f920
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xf0
lea rbp, [rsp + 0x80]
mov eax, 0x10
mov qword [rbp + 0x30], rax
call fcn.1401ffc50
sub rsp, rax
mov rax, qword [rbp + 0x30]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.1401ffc50
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x40], rax
sub rsp, 0x20
call fcn.14017583a
add rsp, 0x20
add rax, 0x50
mov qword [rbp + 0x48], rax
mov rax, qword [0x140288ce0]
cmp byte [rax], 0
jne 0x14015fa10
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140014320
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x140216ed8]
mov qword [rcx], rax
lea rax, [0x140216538]
mov qword [rcx + 0x10], rax
mov rax, qword [0x140216608]
mov qword [rcx + 0x18], rax
mov rax, qword [str.Hf__]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
movabs rax, 0x81950bf2304ca39
movabs rdx, 0xf7e6af4098503f7d
xor rax, rdx
lea rdx, [0x140216538]
lea r8, [0x1402165bf]
lea r9, [0x140216553]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.1400139e0
add rsp, 0x30
jmp 0x14016028e
mov rax, qword [rbp + 0x38]
mov qword [rax], 0
mov rax, qword [0x1402171a8]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.14005f8e6
add rsp, 0x20
mov rax, qword [rbp + 0x48]
cmp byte [rax], 0
jne 0x14015fd20
mov rax, qword [0x1402171a8]
mov rax, qword [rax]
mov rax, qword [rax]
mov qword [rbp + 0x20], rax
xor eax, eax
mov qword [rbp + 0x28], rax
mov rcx, qword [rbp + 0x20]
mov rax, qword [rbp + 0x28]
mov qword [rbp + 0x18], rax
cmp rax, rcx
jge 0x14015fd20
mov eax, dword [0x140209f18]
xor eax, 0xe5956d9
mov ecx, dword [0x140209f1c]
mov edx, 0x686e9138
xor edx, 0xfd1d6e46
xor ecx, edx
or eax, ecx
mov ecx, 0xddc728d0
xor ecx, 0x2110697a
sub eax, ecx
mov ecx, 0x61f3bb6f
xor ecx, 0xcbdb57f7
xor edx, edx
div ecx
mov ecx, 0x52d614e
xor ecx, 0x6ec5b418
xor edx, edx
div ecx
cmp eax, 0xb940fbcd
je 0x140160294
mov rcx, qword [rbp + 0x18]
mov eax, dword [0x140209f20]
xor eax, 0xe2b1827
xor edx, edx
div dword [0x140209f24]
mov r8d, 0xe8ccc4a8
xor r8d, 0x17333b57
mov edx, eax
xor edx, r8d
and edx, 0x50afcc5e
mov r8d, 0xffffffff
xor r8d, 0x50afcc5e
and eax, r8d
sub eax, edx
mov r8d, 0x6e58329c
xor r8d, 0x577bae06
mov edx, 0xf84a5ac
xor edx, 0xf07b5a53
xor r8d, edx
mov edx, eax
and edx, r8d
mov r8d, eax
xor r8d, 0x39239c9a
add eax, r8d
sub eax, edx
mov edx, eax
xor edx, 0xffffffff
mov r8d, 0x424bd830
xor r8d, 0x5fdcc3c0
and edx, r8d
mov r8d, 0xffffffff
xor r8d, 0x1d971bf0
and eax, r8d
sub eax, edx
mov rdx, qword [0x1402171a8]
mov rdx, qword [rdx]
mov qword [rbp], rdx
mov rdx, qword [rdx]
mov qword [rbp + 8], rdx
cmp rcx, rdx
setl cl
mov byte [rbp + 0x17], cl
cmp eax, 0x78f4d2
jb 0x140160294
mov al, byte [rbp + 0x17]
test al, 1
jne 0x14015fc2d
jmp 0x14015fb91
mov eax, dword [0x140209f28]
or eax, dword [0x140209f2c]
mov ecx, 0xbe085043
xor edx, edx
div ecx
add eax, 0x930ea68d
or eax, 0xfb09f547
mov ecx, 0xcb3b5241
xor ecx, 0xf3210b03
cmp eax, ecx
jbe 0x14016029d
mov rcx, qword [rbp + 0x18]
mov eax, dword [0x140209f30]
or eax, dword [0x140209f34]
sub eax, 0xd0f28f77
mov edx, 0xf8804da5
xor edx, 0x14359923
sub eax, edx
add eax, 0xd0f28f77
mov edx, 0xb2334e54
xor edx, 0x806e79e9
and eax, edx
mov r8d, 0xfb0c0019
xor edx, edx
div r8d
mov rdx, qword [rbp + 8]
mov dword [rbp - 4], eax
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140014583
mov eax, dword [rbp - 4]
add rsp, 0x20
cmp eax, 0xf9aab5dd
je 0x14015fbc3
jmp 0x14015fd20
mov rax, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x18]
mov rcx, qword [rbp]
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x10], rcx
lea rdx, [rdx + rdx*2]
mov rcx, qword [rcx + rdx*8 + 8]
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rbp - 5], al
or al, cl
test al, 1
jne 0x14015fcdf
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x18]
mov rax, qword [rbp - 0x10]
add rax, 8
imul rdx, rdx, 0x18
add rax, rdx
add rax, 0x10
mov rdx, qword [rax]
sub rsp, 0x20
call fcn.14009b960
mov rax, qword [rbp + 0x38]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x18], rax
mov al, byte [rax]
mov cl, 0xbc
xor cl, 0xbc
cmp al, cl
je 0x14015fcef
mov rax, qword [rbp - 0x18]
cmp byte [rax + 1], 1
je 0x14015fcef
mov rcx, qword [rbp - 0x18]
sub rsp, 0x20
call fcn.14009bde0
call fcn.14009bf4d
mov rax, qword [rbp + 0x48]
add rsp, 0x20
cmp byte [rax], 0
je 0x14015fde2
jmp 0x14016025f
mov al, byte [rbp - 5]
test al, 1
jne 0x14015fd20
jmp 0x14015fcef
mov rcx, qword [rbp + 0x18]
mov rax, rcx
and rax, 1
movabs rdx, 0x23b4718844b5280e
movabs r8, 0x23b4718844b5280f
xor rdx, r8
or rcx, rdx
add rax, rcx
mov qword [rbp + 0x28], rax
jmp 0x14015fa56
mov eax, dword [0x140209f38]
xor eax, 0xacea7bef
mov ecx, dword [0x140209f3c]
xor ecx, 0x952ad0a7
imul eax, ecx
mov ecx, eax
or ecx, 0xc1ef7246
mov edx, 0x384cb749
xor edx, 0xc7b348b6
xor ecx, edx
or eax, 0xc1ef7246
xor eax, 0xffffffff
or ecx, eax
xor ecx, 0xffffffff
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x2a85b042
mov edx, 0xffffffff
xor edx, 0x2a85b042
and ecx, edx
or eax, ecx
add eax, 0xfe9eaa90
cmp eax, 0x2ce43010
jb 0x1401602a6
mov eax, dword [0x140209f40]
mov ecx, 0xc06c9d8b
xor ecx, 0x6c3a652a
xor eax, ecx
sub eax, dword [0x140209f44]
sub eax, 0xf0084d96
mov ecx, 0x4d0fed76
xor edx, edx
div ecx
mov ecx, eax
mov rax, qword [rbp + 0x38]
xor edx, edx
sub edx, 0xa7a8b211
sub ecx, edx
mov dword [rbp - 0x1c], ecx
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.14009bde0
mov eax, dword [rbp - 0x1c]
add rsp, 0x20
cmp eax, 0x7b10b552
je 0x14015fd85
jmp 0x14016028e
mov eax, dword [0x140209f48]
mov ecx, dword [0x140209f4c]
mov edx, 0x5f1e9d9a
xor edx, 0x400a3bb8
xor ecx, edx
xor edx, edx
div ecx
and eax, 0x49583ca0
mov ecx, 0x7ae36426
xor edx, edx
div ecx
sub eax, 0x6a8410fc
mov ecx, 0x40193469
xor ecx, 0x33459a0
cmp eax, ecx
je 0x1401602af
mov eax, dword [0x140209f50]
xor eax, 0xbcacda44
xor edx, edx
div dword [str.Fip]
mov ecx, eax
add ecx, 1
mov edx, 0x86de151d
xor edx, 0x7921eae2
xor eax, edx
or eax, 0xa20414e9
add eax, ecx
or eax, 0x676e2fe5
or eax, 0x31071539
mov rcx, qword [0x140288ce0]
mov rdx, rcx
add rdx, 8
mov qword [rbp - 0x28], rdx
cmp qword [rcx + 8], 0
sete cl
mov byte [rbp - 0x1d], cl
cmp eax, 0x8a65d36b
jae 0x1401602af
mov al, byte [rbp - 0x1d]
test al, 1
jne 0x14015ffe0
jmp 0x14015fe93
mov ecx, dword [0x140209f58]
or ecx, dword [0x140209f5c]
xor ecx, 0x5110633e
mov eax, ecx
and eax, 0x9d4c2ba
or ecx, 0x9d4c2ba
add eax, ecx
sub eax, 0x170e02c4
cmp eax, 0x4b51ecb
je 0x1401602b8
mov rcx, qword [rbp - 0x28]
mov eax, dword [0x140209f60]
mov r9d, dword [0x140209f64]
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 r8d, 0x5113d177
xor edx, edx
div r8d
add eax, 0x827dc162
add eax, 0xd0ff07d0
sub eax, 0x827dc162
mov r8d, 0xac90326b
xor edx, edx
div r8d
mov dword [rbp - 0x44], eax
sub rsp, 0x20
call fcn.140175848
mov eax, dword [rbp - 0x44]
add rsp, 0x20
mov rcx, qword [0x140288ce0]
mov qword [rbp - 0x40], rcx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x38], rcx
cmp rcx, 1
setl cl
mov byte [rbp - 0x29], cl
cmp eax, 0x2d8dca91
je 0x1401602b8
mov al, byte [rbp - 0x29]
test al, 1
jne 0x14015ff6d
jmp 0x14015ff99
mov rdx, qword [rbp - 0x38]
mov rax, rdx
and rax, 0xffffffffffffffff
shl rax, 1
xor rdx, 0xffffffffffffffff
add rdx, rax
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.140014583
add rsp, 0x20
jmp 0x14016025f
mov rdx, qword [rbp - 0x38]
mov rax, qword [rbp - 0x40]
mov rcx, qword [rax + 0x10]
add rcx, 8
movabs r8, 0x70f346afbc6508f8
movabs rax, 0xe79ae4a62d27b3d0
xor r8, rax
sub rsp, 0x20
call fcn.140097810
mov rax, qword [rbp + 0x48]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x28
xor cl, 0x28
cmp al, cl
jne 0x14016025f
mov eax, dword [0x140209f68]
imul eax, dword [0x140209f6c]
mov ecx, 0x3b36afc8
xor edx, edx
div ecx
mov ecx, 0xed065720
xor edx, edx
div ecx
mov r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xb11617e4
mov r8d, 0x5d8565c
xor r8d, 0x3a11ff05
mov eax, 0xc7eaf229
xor eax, 0x38150dd6
xor r8d, eax
mov eax, ecx
and eax, 0x3fc9a959
and r11d, r8d
mov r9d, edx
and r9d, 0x3fc9a959
mov r10d, r8d
and r10d, 0xb11617e4
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0xc4e353e6
xor edx, 0xfb2afabf
or edx, r8d
and ecx, edx
or eax, ecx
cmp eax, 0x12d3617c
je 0x1401602c1
mov eax, dword [0x140209f70]
mov ecx, dword [0x140209f74]
xor ecx, 0x50124c74
and eax, ecx
xor eax, 0x814e7c1
imul eax, eax, 0xe52290d9
mov r8d, 0xffffffff
xor r8d, 0xc3e0d717
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xc3e0d717
or eax, 0xc3e0d717
imul eax, edx
add eax, ecx
mov dword [rbp - 0x50], eax
mov eax, 0x34f6078d
xor eax, 0x2acc7a33
mov dword [rbp - 0x4c], eax
mov rax, qword [0x1402171a0]
mov rax, qword [rax]
mov rcx, qword [rax + 0x58]
mov qword [rbp + 0x50], rcx
mov rax, qword [rax + 0x60]
mov qword [rbp + 0x58], rax
lea rcx, [rbp + 0x60]
lea rdx, [rbp + 0x50]
sub rsp, 0x20
call fcn.14001dec2
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov rdx, qword [rbp + 0x60]
mov rax, qword [rbp + 0x68]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.140145410
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x48]
mov dl, byte [rax]
mov byte [rbp - 0x47], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.140107aac
mov rcx, qword [rbp + 0x48]
mov al, byte [rbp - 0x47]
add rsp, 0x20
mov dl, 1
mov byte [rbp - 0x46], dl
cmp byte [rcx], 0
mov byte [rbp - 0x45], al
je 0x14016015d
mov al, byte [rbp - 0x46]
mov byte [rbp - 0x45], al
mov eax, dword [rbp - 0x50]
mov ecx, dword [rbp - 0x4c]
mov rdx, qword [rbp + 0x48]
mov r8b, byte [rbp - 0x45]
mov byte [rbp - 0x61], r8b
mov byte [rdx], 0
mov rdx, qword [0x140288ce0]
mov r8, rdx
add r8, 8
mov qword [rbp - 0x60], r8
mov rdx, qword [rdx + 8]
movabs r8, 0x30e0bf88fcd61a92
movabs r9, 0x30e0bf88fcd61a92
xor r8, r9
cmp rdx, r8
sete dl
mov byte [rbp - 0x51], dl
cmp eax, ecx
jb 0x140160076
mov al, byte [rbp - 0x51]
test al, 1
jne 0x140160256
jmp 0x1401601c0
mov rcx, qword [rbp - 0x60]
sub rsp, 0x20
call fcn.140175848
add rsp, 0x20
mov rax, qword [0x140288ce0]
mov qword [rbp - 0x78], rax
mov rax, qword [rax + 8]
mov qword [rbp - 0x70], rax
movabs rcx, 0xf27a2adab7156444
movabs rdx, 0xf27a2adab7156445
xor rcx, rdx
cmp rax, rcx
jge 0x140160222
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffff
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.140014583
add rsp, 0x20
jmp 0x14016025f
mov rdx, qword [rbp - 0x70]
mov rax, qword [rbp - 0x78]
mov rcx, qword [rax + 0x10]
add rcx, 8
movabs r8, 0x976966019152bb28
sub rsp, 0x20
call fcn.140097810
mov rax, qword [rbp + 0x48]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14016025f
mov rax, qword [rbp + 0x48]
mov cl, byte [rbp - 0x61]
mov byte [rax], cl
mov rax, qword [rbp + 0x48]
mov cl, byte [rax]
mov byte [rbp - 0x79], cl
mov byte [rax], 0
sub rsp, 0x20
call fcn.14009a5c0
mov rax, qword [rbp + 0x48]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14016028e
mov rax, qword [rbp + 0x48]
mov cl, byte [rbp - 0x79]
mov byte [rax], cl
lea rsp, [rbp + 0x70]
pop rbp
ret
jmp 0x14016029f
rol byte [rbx], 1
retf
pop rsp
rcl dword [rcx - 0x17], cl
invalid
fild word [rax]
cwde
and ch, cl
insd dword [rdi], dx
sti
invalid
add esp, dword [rdi + 0x3e9d2f6]
cld
invalid
movsb byte [rdi], byte [rsi]
invalid