Function at 0x14018a360
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0xc0
lea rbp, [rsp + 0x80]
mov eax, dword [0x140221198]
xor edx, edx
div dword [0x14022119c]
sub eax, 0x34606c1a
imul ecx, eax, 0xc8d82f6
mov edx, 0xfc196210
xor edx, 0x3e69def
mov eax, ecx
xor eax, edx
and eax, 0x1c330be7
mov edx, 0xffffffff
xor edx, 0x1c330be7
and ecx, edx
or eax, ecx
cmp eax, 0x64fcad1e
jb 0x14018ad71
mov ecx, dword [0x1402211a0]
xor ecx, 0x74e7dafd
mov eax, dword [0x1402211a4]
xor eax, ecx
not eax
and eax, ecx
mov ecx, eax
and ecx, 0x49c73c80
mov edx, ecx
not edx
mov r8d, eax
and r8d, 0x48843c80
and edx, 0x37538251
imul edx, r8d
and eax, 0x1430000
or ecx, 0x37538251
imul ecx, eax
mov eax, ecx
mov ecx, edx
lea eax, [rax + rcx - 0x70374bae]
mov dword [rbp + 0x2c], eax
mov eax, 0x10
mov qword [rbp + 0x10], rax
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp - 8], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp + 8], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x10]
mov rcx, rsp
mov qword [rbp + 0x18], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x20], rax
sub rsp, 0x20
call fcn.14018af70
add rsp, 0x20
mov rcx, rax
mov eax, dword [rbp + 0x2c]
add rcx, 0x50
mov qword [rbp + 0x30], rcx
mov rcx, qword [0x14029fdb0]
mov cl, byte [rcx]
mov dl, 0x50
xor dl, 0x50
cmp cl, dl
sete cl
mov byte [rbp + 0x3f], cl
cmp eax, 0xa723fdb6
ja 0x14018a3b9
mov al, byte [rbp + 0x3f]
test al, 1
jne 0x14018a4bd
jmp 0x14018a564
movabs rcx, 0x3af5eca025848186
movabs rax, 0x3af5eca0258481c6
xor rcx, rax
movabs rdx, 0xe08491a967025769
movabs rax, 0xe08491a967025761
xor rdx, rax
sub rsp, 0x20
call fcn.140015160
add rsp, 0x20
mov rcx, rax
mov rax, qword [str.pf__]
mov qword [rcx], rax
lea rax, [0x14022d080]
mov qword [rcx + 0x10], rax
mov rax, qword [0x14022d168]
mov qword [rcx + 0x18], rax
mov rax, qword [0x14022d170]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x14022d080]
lea r8, [0x14022d178]
lea r9, [0x14022d09b]
sub rsp, 0x30
mov qword [rsp + 0x20], 0x548df5a8
call fcn.140014c00
add rsp, 0x30
xor eax, eax
mov qword [rbp - 0x10], rax
jmp 0x14018ac60
mov rcx, qword [rbp - 8]
mov rax, qword [0x14022d188]
mov qword [rcx], rax
mov rax, qword [0x14022d190]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.140037cc7
mov rcx, qword [rbp + 0x30]
add rsp, 0x20
mov qword [rbp - 0x18], rax
cmp byte [rcx], 0
mov qword [rbp - 0x10], rax
jne 0x14018ac60
mov ecx, 8
mov edx, 4
sub rsp, 0x20
call fcn.140015160
mov rcx, qword [rbp]
add rsp, 0x20
mov rdx, rax
mov qword [rbp - 0x30], rdx
mov dword [rdx + 4], 2
sub rsp, 0x20
call fcn.140075190
mov rcx, qword [rbp]
mov rax, qword [rbp + 0x30]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp - 0x28], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x20], rcx
cmp byte [rax], 0
jne 0x14018a7c8
mov rax, qword [rbp - 0x28]
movabs rcx, 0xecffcb2f66886fd2
add rax, rcx
add rax, 0xffffffff80000000
movabs rcx, 0xecffcb2f66886fd2
sub rax, rcx
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x14018a670
mov rcx, qword [rbp - 0x28]
movabs rdx, 0x9a2d1bde0bb8d042
movabs rax, 0x65d2e4218bb8d042
xor rdx, rax
movabs r8, 0xf59a4ba7113359d8
movabs rax, 0xf59a4ba76ecca627
xor r8, rax
sub rsp, 0x20
call fcn.14000e6db
add rsp, 0x20
jmp 0x14018a7c8
mov rax, qword [rbp - 0x28]
cmp rax, 1
jge 0x14018a6af
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffff
movabs rcx, 0x68b4f98c54a14ee3
movabs rax, 0x68b4f98c54a14ee3
xor rcx, rax
sub rsp, 0x20
call fcn.1400153d3
add rsp, 0x20
jmp 0x14018a7c8
mov rcx, qword [rbp - 0x18]
mov r11, qword [rbp - 0x20]
mov rax, qword [rbp - 0x28]
mov esi, eax
add r11, 8
mov rax, qword [0x14022dd08]
mov rdx, qword [rax + 8]
mov r10, rdx
add r10, 8
xor eax, eax
cmp rdx, 0
cmove r10, rax
mov rax, qword [0x14022dd08]
mov rax, qword [rax]
mov edx, 0xfffffffd
xor r9d, r9d
xor r8d, r8d
sub rsp, 0x50
mov r8d, r9d
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], 0
call fcn.1400a4260
mov rax, qword [rbp + 0x30]
add rsp, 0x50
cmp byte [rax], 0
jne 0x14018a7c8
mov rcx, qword [rbp - 0x18]
mov rax, qword [0x14022dd08]
mov rdx, qword [rax + 8]
mov r11, rdx
add r11, 8
xor eax, eax
cmp rdx, 0
cmove r11, rax
mov rax, qword [0x14022dd08]
mov rsi, qword [rax]
mov edx, 0xf23fa7a1
xor edx, 0xdc0585e
mov r8d, 0x8c8b92c3
xor r8d, 0x73746d3c
mov r9d, 0x2af79488
xor r9d, 0xd5086b77
mov r10d, 0xa0e0fb2a
xor r10d, 0x5f1f04d5
mov bl, 1
xor bl, 1
xor eax, eax
sub rsp, 0x50
and bl, 1
mov rax, rsp
mov byte [rax + 0x48], bl
mov qword [rax + 0x40], rsi
mov qword [rax + 0x38], r11
mov dword [rax + 0x20], r10d
mov qword [rax + 0x30], 0
mov qword [rax + 0x28], 0
call fcn.1400a4260
add rsp, 0x50
mov rcx, qword [rbp - 0x30]
sub rsp, 0x20
call fcn.1400905a0
mov rax, qword [rbp - 0x20]
add rsp, 0x20
cmp rax, 0
je 0x14018a83c
mov rax, qword [rbp - 0x20]
mov rcx, qword [rax]
mov rdx, 0xffffffffffffffff
movabs rax, 0x4000000000000000
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
movabs rcx, 0x51c65d0eb00b7cb1
movabs rdx, 0x51c65d0eb00b7cb1
xor rcx, rdx
cmp rax, rcx
jne 0x14018a83c
mov rcx, qword [rbp - 0x20]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp + 0x30]
mov cl, byte [rcx]
mov dl, 0x10
xor dl, 0x10
cmp cl, dl
mov qword [rbp - 0x10], rax
jne 0x14018ac60
mov rax, qword [0x14029fdb0]
mov rcx, rax
add rcx, 8
mov qword [rbp - 0x38], rcx
cmp qword [rax + 8], 0
je 0x14018aac2
mov rcx, qword [rbp - 0x38]
sub rsp, 0x20
call fcn.14018b060
add rsp, 0x20
mov rax, qword [0x14029fdb0]
mov qword [rbp - 0x48], rax
mov rax, qword [rax + 8]
mov qword [rbp - 0x40], rax
movabs rcx, 0xaf0c1631409520a4
movabs rdx, 0xaf0c1631409520a5
xor rcx, rdx
cmp rax, rcx
jge 0x14018aa86
mov ecx, dword [0x1402211a8]
mov eax, 0x6b89fede
xor eax, 0x4d12729c
xor ecx, eax
mov edx, dword [0x1402211ac]
mov eax, 0x99490909
xor eax, 0x99490909
sub eax, edx
sub ecx, eax
mov edx, ecx
xor edx, 0xffffffff
and edx, 0xcc3815c1
mov r8d, 0xffffffff
xor r8d, 0xcc3815c1
mov eax, ecx
and eax, r8d
imul eax, edx
mov edx, ecx
and edx, 0xcc3815c1
mov r8d, 0x3199d96e
xor r8d, 0xfda1ccaf
or ecx, r8d
imul ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, 0x5291130b
xor eax, 0xffffffff
mov edx, 0x5291130b
and edx, 0x5291130b
xor edx, 0xffffffff
xor ecx, 0xffffffff
mov r8d, 0x14e5d3ae
xor r8d, 0xeb1a2c51
xor edx, r8d
or ecx, edx
mov edx, 0xe44d84a6
xor edx, 0x1bb27b59
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov edx, eax
xor edx, 0xa4124a0b
mov ecx, 0x61dc75a1
xor ecx, 0x9e238a5e
xor edx, ecx
mov ecx, 0xedccb2f4
xor ecx, 0x49def8ff
and ecx, edx
shl ecx, 1
mov edx, 0x234ace2c
xor edx, 0x87588427
sub ecx, edx
sub eax, ecx
cmp eax, 0x98d6a0eb
jae 0x14018ad7a
mov r11d, dword [0x1402211b0]
mov r10d, dword [0x1402211b4]
mov ecx, r11d
xor ecx, 0xffffffff
mov eax, 0xf7971986
xor eax, 0x868e679
mov r8d, r10d
xor r8d, eax
mov edx, 0xffffffff
xor edx, 0x27fc220b
mov eax, ecx
and eax, 0x27fc220b
and r11d, edx
mov esi, 0x1cd889
xor esi, 0x27e0fa82
mov r9d, r8d
and r9d, esi
and r10d, edx
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
xor ecx, 0xffffffff
or edx, 0x27fc220b
and ecx, edx
or eax, ecx
mov ecx, eax
and ecx, 0xc6d560db
shl ecx, 1
xor eax, 0xc6d560db
add eax, ecx
mov ecx, 0xbed5ca79
xor edx, edx
div ecx
mov ecx, 0xf02121d1
xor edx, edx
div ecx
mov ecx, eax
mov rax, qword [rbp - 0x40]
mov dword [rbp - 0x4c], ecx
mov rdx, rax
and rdx, 0xffffffffffffffff
movabs rcx, 0xb499b6c29be7cdd1
movabs r8, 0x4b66493d6418322e
xor rcx, r8
or rax, rcx
add rdx, rax
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.1400153d3
mov eax, dword [rbp - 0x4c]
add rsp, 0x20
cmp eax, 0x1f3d679b
jae 0x14018ad7a
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x10], rax
jmp 0x14018ac60
mov rdx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x48]
mov rcx, qword [rax + 0x10]
add rcx, 8
movabs r8, 0x29b9945748725729
sub rsp, 0x20
call fcn.1400a2ce0
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp - 0x18]
add rsp, 0x20
cmp byte [rcx], 0
mov qword [rbp - 0x10], rax
jne 0x14018ac60
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp + 0x18]
mov rax, qword [rbp - 0x18]
mov r8, qword [rax + 0x58]
mov qword [rdx], r8
mov rax, qword [rax + 0x60]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001fd14
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x20]
add rsp, 0x20
mov rdx, qword [rax]
mov rax, qword [rax + 8]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.1401603c0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x30]
mov dl, byte [rax]
mov byte [rbp - 0x4f], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.140115860
mov rcx, qword [rbp + 0x30]
mov al, byte [rbp - 0x4f]
add rsp, 0x20
mov dl, 1
mov byte [rbp - 0x4e], dl
cmp byte [rcx], 0
mov byte [rbp - 0x4d], al
je 0x14018ab47
mov al, byte [rbp - 0x4e]
mov byte [rbp - 0x4d], al
mov rax, qword [rbp + 0x30]
mov cl, byte [rbp - 0x4d]
mov byte [rbp - 0x59], cl
mov byte [rax], 0
mov rax, qword [0x14029fdb0]
mov rcx, rax
add rcx, 8
mov qword [rbp - 0x58], rcx
cmp qword [rax + 8], 0
je 0x14018ac4f
mov rcx, qword [rbp - 0x58]
sub rsp, 0x20
call fcn.14018b060
add rsp, 0x20
mov rax, qword [0x14029fdb0]
mov qword [rbp - 0x70], rax
mov rax, qword [rax + 8]
mov qword [rbp - 0x68], rax
movabs rcx, 0x6206e55d563f9089
movabs rdx, 0x6206e55d563f9088
xor rcx, rdx
cmp rax, rcx
jge 0x14018ac13
mov rdx, qword [rbp - 0x68]
mov rax, rdx
and rax, 0xffffffffffffffff
movabs rcx, 0xa639fe89fbded84e
movabs r8, 0xa639fe89fbded84c
xor rcx, r8
imul rax, rcx
xor rdx, 0xffffffffffffffff
add rdx, rax
movabs rcx, 0x84cac3dc418cd974
movabs rax, 0x84cac3dc418cd974
xor rcx, rax
sub rsp, 0x20
call fcn.1400153d3
mov rax, qword [rbp - 0x18]
add rsp, 0x20
mov qword [rbp - 0x10], rax
jmp 0x14018ac60
mov rdx, qword [rbp - 0x68]
mov rax, qword [rbp - 0x70]
mov rcx, qword [rax + 0x10]
add rcx, 8
movabs r8, 0x29b96b4c48525729
sub rsp, 0x20
call fcn.1400a2ce0
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp - 0x18]
add rsp, 0x20
cmp byte [rcx], 0
mov qword [rbp - 0x10], rax
jne 0x14018ac60
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp + 0x30]
mov dl, byte [rbp - 0x59]
mov byte [rcx], dl
mov qword [rbp - 0x10], rax
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp - 0x10]
mov dl, byte [rax]
mov byte [rbp - 0x71], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1400360c0
mov rax, qword [rbp + 0x30]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14018ac93
mov rax, qword [rbp + 0x30]
mov cl, byte [rbp - 0x71]
mov byte [rax], cl
mov eax, dword [0x1402211b8]
mov ecx, dword [0x1402211bc]
xor ecx, 0xdbb3262e
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0xe1efc03e
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
mov edx, 0x6f7b3298
xor edx, 0xe92eb052
and eax, edx
mov edx, 0xade43760
xor edx, 0x521bc89f
xor eax, edx
mov edx, 0x865582ca
and edx, 0x865582ca
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x1483a766
xor ecx, 0xeb7c5899
xor eax, ecx
mov ecx, 0xe868b27d
xor edx, edx
div ecx
cmp eax, 0x89cc41f9
je 0x14018ad83
mov ecx, dword [0x1402211c0]
mov eax, 0x538ae0a6
xor eax, 0x4ce58363
xor ecx, eax
or ecx, dword [0x1402211c4]
sub ecx, 0x74464d99
mov eax, 0xf74ba163
xor eax, 0xf74a38de
and ecx, eax
mov edx, 0xc1df9bd7
xor edx, 0x3e206428
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x471a0bde
and ecx, 0x471a0bde
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x2d39f93d
jbe 0x14018ad0d
lea rsp, [rbp + 0x40]
pop rbx
pop rsi
pop rbp
ret
push rdx
mov cl, 0xf1
xchg ecx, eax
jmp 0x14018a3b9
mov word [rbp + 0x20e9adae], es
cld
invalid
cmp ah, byte [rcx - 0x7e169295]
invalid