Function at 0x1401a3ab0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1f0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xa8], r8
mov qword [rbp + 0x80], rdx
mov qword [rbp + 0x98], rcx
mov qword [rbp + 0x88], rcx
mov eax, 0x10
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x90], rax
sub rsp, 0x20
call fcn.1401ace11
mov rcx, qword [rbp + 0x98]
mov r8, qword [rbp + 0xa8]
add rsp, 0x20
add rax, 0x50
mov qword [rbp + 0xa0], rax
mov qword [rcx], 0
mov qword [rcx + 8], 0
mov rdx, qword [r8]
add rdx, 1
lea rcx, [rbp + 0x160]
sub rsp, 0x20
call fcn.14001efd0
mov r8, qword [rbp + 0xa8]
add rsp, 0x20
mov rax, qword [rbp + 0x160]
mov qword [rbp + 0xb0], rax
mov rcx, qword [rbp + 0x168]
mov qword [rbp + 0xb8], rcx
mov rcx, qword [r8]
mov qword [rbp + 0xc0], rcx
mov rdx, qword [r8 + 8]
mov qword [rbp + 0xc8], rdx
movabs rdx, 0x2f7802fc9a367da
movabs r8, 0x2f7802fc9a367da
xor rdx, r8
cmp rcx, rdx
mov qword [rbp + 0xd0], rax
jle 0x1401a3d50
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
and rax, 1
mov rdx, rcx
or rdx, 1
add rax, rdx
mov qword [rbp + 0x78], rax
xor rcx, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x1401a3bef
sub rsp, 0x20
call fcn.140008bc6
mov rax, qword [rbp + 0xb0]
add rsp, 0x20
mov qword [rbp + 0xd0], rax
jmp 0x1401a3d50
mov rax, qword [rbp + 0x78]
cmp rax, 0
jge 0x1401a3c2f
mov rcx, qword [rbp + 0x78]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000e6db
mov rax, qword [rbp + 0xb0]
add rsp, 0x20
mov qword [rbp + 0xd0], rax
jmp 0x1401a3d50
mov rax, qword [rbp + 0xc8]
mov rdx, qword [rbp + 0xb0]
mov rcx, qword [rbp + 0xb8]
add rcx, 8
add rcx, rdx
mov qword [rbp + 0x60], rcx
add rax, 8
mov qword [rbp + 0x68], rax
xor eax, eax
mov qword [rbp + 0x70], rax
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x58], rax
cmp rax, rcx
je 0x1401a3c91
mov rax, qword [rbp + 0x58]
mov rcx, qword [rbp + 0x60]
mov rdx, qword [rbp + 0x68]
mov dl, byte [rdx + rax]
mov byte [rcx + rax], dl
add rax, 1
mov qword [rbp + 0x70], rax
jmp 0x1401a3c5d
mov r9, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0xb0]
movabs rcx, 0xca2399ac39540147
movabs rax, 0xca2399ac39540147
xor rcx, rax
sub rcx, rdx
mov rax, r9
sub rax, rcx
mov rcx, rax
xor rcx, rdx
movabs rdx, 0xe037d1e533ff63c2
movabs r8, 0x1fc82e1acc009c3d
xor rdx, r8
mov r8, rax
xor r8, rdx
mov rdx, r9
and rdx, r8
movabs r8, 0x7ea4e7d8397d90b7
movabs r10, 0x815b1827c6826f48
xor r8, r10
xor r9, r8
mov r8, rax
and r8, r9
or rdx, r8
and rcx, rdx
movabs rdx, 0xd3063c72e0641917
movabs r8, 0xd3063c72e0641917
xor rdx, r8
cmp rcx, rdx
mov qword [rbp + 0xd0], rax
jge 0x1401a3d50
sub rsp, 0x20
call fcn.140008bc6
mov rax, qword [rbp + 0xb0]
add rsp, 0x20
mov qword [rbp + 0xd0], rax
mov rax, qword [rbp + 0xb8]
mov rcx, qword [rbp + 0xd0]
mov qword [rbp + 0x48], rcx
mov dl, 0xbb
xor dl, 0xe7
mov byte [rax + rcx + 8], dl
movabs rdx, 0xabf27151f777bd22
movabs rax, 0xc8539fc40a0b404b
xor rdx, rax
mov rax, rcx
sub rax, rdx
add rax, 1
movabs rdx, 0x63a1ee95fd7cfd69
add rax, rdx
mov qword [rbp + 0x50], rax
xor rcx, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x1401a3dc8
sub rsp, 0x20
call fcn.140008bc6
mov rax, qword [rbp + 0x48]
add rsp, 0x20
mov qword [rbp + 0x40], rax
jmp 0x1401a3ddc
mov rax, qword [rbp + 0x50]
mov rcx, qword [rbp + 0xb8]
mov byte [rcx + rax + 8], 0
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0xb8]
mov rdx, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x40]
mov r8, qword [rdx]
mov qword [rbp + 0x140], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0x148], rdx
mov qword [rbp + 0x130], rcx
mov qword [rbp + 0x138], rax
mov rax, qword [0x14022d300]
mov qword [rbp + 0x120], rax
mov rax, qword [0x14022d308]
mov qword [rbp + 0x128], rax
lea rcx, [rbp + 0x150]
lea rdx, [rbp + 0x140]
lea r8, [rbp + 0x130]
lea r9, [rbp + 0x120]
sub rsp, 0x20
call fcn.1400493b0
mov rcx, qword [rbp + 0xa0]
add rsp, 0x20
mov rax, qword [rbp + 0x150]
mov qword [rbp + 0x20], rax
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x28], rax
xor eax, eax
cmp byte [rcx], 0
mov rcx, rax
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], rax
jne 0x1401a471b
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x20]
mov qword [rbp + 0x100], rcx
mov qword [rbp + 0x108], rax
lea rcx, [rbp + 0x110]
lea rdx, [rbp + 0x100]
mov r8d, 0x5c
mov r9, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140043980
mov rdx, qword [rbp + 0xa0]
add rsp, 0x20
mov rcx, qword [rbp + 0x110]
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x118]
mov qword [rbp + 0x18], rax
cmp byte [rdx], 0
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], rax
jne 0x1401a471b
mov ecx, 0x3c5
sub rsp, 0x20
call fcn.14006fe60
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xa0]
mov qword [rbp + 8], rcx
cmp byte [rax], 0
jne 0x1401a41d9
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x10]
cmp rax, rcx
jge 0x1401a4216
mov cx, 0x225b
xor cx, 0x2303
sub rsp, 0x20
call fcn.14006fe60
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xa0]
mov qword [rbp], rcx
cmp byte [rax], 0
jne 0x1401a41d9
mov rax, qword [rbp]
mov r8, qword [rbp + 0x10]
test rax, rax
setns cl
mov rdx, rax
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov qword [rbp - 8], rax
jne 0x1401a3f87
jmp 0x1401a41a6
mov word [rbp + 0xfe], 0x812
lea rcx, [rbp + 0xfe]
sub rsp, 0x20
call fcn.140070140
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xa0]
mov qword [rbp - 0x10], rcx
cmp byte [rax], 0
jne 0x1401a41d9
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x18]
add rcx, 8
shl rax, 4
add rcx, rax
mov rax, qword [rcx]
mov qword [rbp - 0x28], rax
mov rcx, qword [rcx + 8]
mov qword [rbp - 0x20], rcx
mov rcx, qword [rdx]
mov rdx, qword [rdx + 8]
mov qword [rbp - 0x18], rdx
cmp rax, rcx
jne 0x1401a4216
mov rax, qword [rbp - 0x28]
cmp rax, 0
je 0x1401a4074
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x20]
add rdx, 8
mov qword [rbp - 0x48], rdx
add rax, 8
mov qword [rbp - 0x40], rax
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rbp - 0x38], rax
xor eax, eax
mov qword [rbp - 0x30], rax
mov rcx, qword [rbp - 0x38]
mov rax, qword [rbp - 0x30]
mov qword [rbp - 0x50], rax
cmp rax, rcx
je 0x1401a4074
mov rax, qword [rbp - 0x50]
mov rdx, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x48]
mov cl, byte [rcx + rax]
mov dl, byte [rdx + rax]
xor r8d, r8d
sub r8, 1
sub rax, r8
cmp cl, dl
mov qword [rbp - 0x30], rax
je 0x1401a4032
jmp 0x1401a4216
mov ecx, 0x7ed
sub rsp, 0x20
call fcn.14006fe60
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0xa0]
mov qword [rbp - 0x58], rcx
cmp byte [rax], 0
jne 0x1401a41d9
mov rax, qword [rbp - 0x58]
mov r8, qword [rbp + 0x10]
test rax, rax
setns cl
mov rdx, rax
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov qword [rbp - 8], rax
jne 0x1401a40c8
jmp 0x1401a41a6
mov rax, qword [rbp + 0x98]
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp + 0x18]
add rcx, 8
shl rdx, 4
add rcx, rdx
mov rdx, qword [rcx]
mov qword [rax], rdx
mov rdx, qword [rcx + 8]
mov qword [rax + 8], rdx
sub rsp, 0x20
call fcn.1400123e0
mov rax, qword [rbp + 0x28]
add rsp, 0x20
cmp rax, 0
je 0x1401a4148
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
mov rcx, rax
add rcx, 1
xor rax, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
or rax, rdx
add rax, rcx
cmp rax, 0
jne 0x1401a4148
mov rcx, qword [rbp + 0x28]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
mov rax, qword [rbp + 0xb8]
cmp rax, 0
je 0x1401a41ee
mov rcx, qword [rbp + 0xb8]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0x91dd7f7ed269f74d
movabs rdx, 0x91dd7f7ed269f74d
xor rcx, rdx
cmp rax, rcx
jne 0x1401a41ee
mov rcx, qword [rbp + 0xb8]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
jmp 0x1401a41ee
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp - 8]
movabs rax, 0x971900fe98548e73
sub rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0x971900fe98548e73
add rdx, rax
sub rsp, 0x20
call fcn.1400153d3
add rsp, 0x20
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x10]
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], rax
jmp 0x1401a471b
mov rcx, qword [rbp + 0x90]
mov rax, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x10]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14001ba90
add rsp, 0x20
jmp 0x1401a4838
mov ecx, 0x63b
sub rsp, 0x20
call fcn.14006fe60
mov rdx, qword [rbp + 0xa0]
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp + 0x18]
mov qword [rbp - 0x60], r8
mov dl, byte [rdx]
mov r8b, 0xf2
xor r8b, 0xf2
cmp dl, r8b
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], rax
jne 0x1401a471b
mov edx, dword [0x140221b38]
mov r8d, dword [0x140221b3c]
xor r8d, 0xbe229070
mov eax, edx
xor eax, 0xffffffff
mov ecx, r8d
and ecx, eax
mov eax, 0xd07f7479
xor eax, 0x2f808b86
mov r9d, r8d
xor r9d, eax
mov eax, edx
and eax, r9d
imul eax, ecx
mov ecx, edx
and ecx, r8d
or edx, r8d
imul edx, ecx
add edx, eax
mov ecx, edx
xor ecx, 0xd3bf0043
mov eax, 0xffffffff
xor eax, 0xd3bf0043
and edx, eax
mov eax, 0xaaa22995
xor eax, 0xaaa22997
imul eax, edx
sub eax, ecx
mov edx, 0x6cf64391
xor edx, 0xc7e00c36
mov ecx, eax
and ecx, edx
shl ecx, 1
add eax, 0xab164fa7
sub eax, ecx
mov ecx, eax
and ecx, 0xb4e805b9
xor ecx, 0xffffffff
add eax, 0xb4e805b9
mov edx, 0x16c4e8a4
xor edx, 0x16c4e8a5
add eax, edx
add eax, ecx
cmp eax, 0xfc9fee98
je 0x1401a4848
mov r9, qword [rbp + 0x10]
mov r8, qword [rbp - 0x60]
mov eax, dword [0x140221b40]
mov ecx, dword [0x140221b44]
xor ecx, 0x2b2417cd
mov r10d, eax
xor r10d, ecx
not r10d
mov edx, ecx
and edx, r10d
add edx, edx
sub ecx, edx
add eax, ecx
and eax, 0x63246340
xor eax, 0x127aa37f
mov ecx, 0x227e4c6e
test r8, r8
setns dl
sub r8, r9
setl r8b
and dl, r8b
mov byte [rbp - 0x61], dl
cmp eax, ecx
ja 0x1401a4301
mov al, byte [rbp - 0x61]
test al, 1
jne 0x1401a4397
jmp 0x1401a4369
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.1400153d3
mov rcx, qword [rbp + 0x10]
mov rax, qword [rbp + 0x18]
add rsp, 0x20
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x38], rax
jmp 0x1401a471b
mov ecx, dword [0x140221b48]
mov eax, dword [0x140221b4c]
mov edx, 0x26eae62f
xor edx, 0x234caee0
xor eax, edx
or ecx, ecx
mov edx, 0x96fa5c33
xor edx, 0x6905a3cc
xor ecx, edx
or eax, eax
xor eax, 0xffffffff
or ecx, eax
xor ecx, 0xffffffff
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x4f677a8
mov edx, 0xd8ef6af1
xor edx, 0xdc191d59
mov r8d, 0xf85b908f
xor r8d, 0x7a46f70
xor edx, r8d
and ecx, edx
or eax, ecx
or eax, 0xa0107bcc
mov ecx, 0x5e9a32db
xor ecx, 0xe0d3b838
sub eax, ecx
mov ecx, 0x90e918bf
xor ecx, 0xd0c76667
cmp eax, ecx
jae 0x1401a4851
mov rax, qword [rbp + 0x98]
mov rdx, qword [rbp - 0x60]
mov rcx, qword [rbp + 0x18]
mov r8d, dword [0x140221b50]
or r8d, dword [0x140221b54]
xor r8d, 0xb92f6292
imul r8d, r8d, 0x7d50cb62
and r8d, 0xf5cd0d73
mov dword [rbp - 0x68], r8d
mov r8d, 0x6a578704
xor r8d, 0x1400e17a
mov dword [rbp - 0x6c], r8d
add rcx, 8
shl rdx, 4
add rcx, rdx
mov rdx, qword [rcx]
mov qword [rax], rdx
mov rdx, qword [rcx + 8]
mov qword [rax + 8], rdx
sub rsp, 0x20
call fcn.1400123e0
mov rdx, qword [rbp + 0x28]
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rbp - 0x68]
add rsp, 0x20
cmp rdx, 0
sete dl
mov byte [rbp - 0x62], dl
cmp eax, ecx
jae 0x1401a4851
mov al, byte [rbp - 0x62]
test al, 1
jne 0x1401a4663
jmp 0x1401a44b0
mov eax, dword [0x140221b58]
mov edx, dword [0x140221b5c]
mov r8d, 0x5df4f496
xor r8d, 0xa20b0b69
mov ecx, eax
xor ecx, r8d
mov r8d, edx
xor r8d, 0xffffffff
and ecx, r8d
xor eax, 0xffffffff
mov r8d, 0xe3935b9b
xor r8d, 0x1c6ca464
xor edx, r8d
and eax, edx
or ecx, eax
xor ecx, 0xffffffff
mov edx, 0xd3723349
xor edx, 0xc43fab6c
mov eax, ecx
and eax, edx
or ecx, 0x174d9825
add eax, ecx
mov ecx, 0x61523da9
xor ecx, 0xa862d893
xor edx, edx
div ecx
mov edx, 0xffffffff
xor edx, 0x5a116597
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0x5a116597
add eax, edx
sub eax, ecx
mov ecx, 0x4be52bb3
xor ecx, 0xb1ce610b
cmp eax, ecx
je 0x1401a485a
mov rcx, qword [rbp + 0x28]
mov edx, dword [0x140221b60]
mov r9d, dword [0x140221b64]
mov r8d, 0xcf66e3ed
xor r8d, 0x30991c12
mov eax, edx
xor eax, r8d
mov r8d, r9d
and r8d, eax
mov r10d, r9d
xor r10d, 0xffffffff
mov eax, edx
and eax, r10d
imul eax, r8d
mov r8d, edx
and r8d, r9d
or edx, r9d
imul edx, r8d
add edx, eax
mov eax, 0x7e9f49d7
xor eax, 0x7e9f49d7
mov r8d, 0x2682c429
xor r8d, 0x6a4dd45f
sub eax, r8d
sub edx, eax
mov eax, 0x580601b
xor eax, 0xf980f441
xor edx, eax
mov r8d, 0x581415c2
xor r8d, 0x98ad916d
mov eax, 0xb9828064
xor eax, 0x467d7f9b
xor r8d, eax
mov eax, edx
xor eax, r8d
and eax, edx
mov rdx, qword [rcx]
movabs r8, 0x4000000000000000
mov rcx, rdx
and rcx, r8
xor rcx, 0xffffffffffffffff
movabs r8, 0x12a085f81b9a7419
movabs r9, 0x52a085f81b9a7419
xor r8, r9
and rdx, r8
movabs r8, 0xe61646578dc44b56
movabs r9, 0x19e9b9a8723bb4a9
xor r8, r9
xor rdx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
cmp rcx, 0
sete cl
mov byte [rbp - 0x6d], cl
cmp eax, 0x4dc06aa2
je 0x1401a485a
mov al, byte [rbp - 0x6d]
test al, 1
jne 0x1401a4652
jmp 0x1401a4663
mov rcx, qword [rbp + 0x28]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
mov rax, qword [rbp + 0xb8]
cmp rax, 0
je 0x1401a46ec
mov rax, qword [rbp + 0xb8]
mov rax, qword [rax]
xor rax, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor rcx, rdx
mov rdx, 0xffffffffffffffff
movabs r8, 0x361ad16cbe8b00d9
xor rdx, r8
or rax, rcx
movabs rcx, 0xbb31932b4531cae2
movabs r8, 0x8d2b4247fbbaca3b
xor rcx, r8
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jne 0x1401a46ec
mov rcx, qword [rbp + 0xb8]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x10]
mov qword [rbp + 0xe8], rcx
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0xe8]
sub rsp, 0x20
call fcn.14001ba90
add rsp, 0x20
jmp 0x1401a4838
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x38]
mov qword [rbp - 0x80], rdx
mov qword [rbp - 0x78], rcx
cmp rax, 0
je 0x1401a47cb
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax]
movabs rdx, 0x91cc3689eca82be9
movabs rax, 0x6e33c9761357d416
xor rdx, rax
mov rax, rcx
xor rax, rdx
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
or rax, rdx
movabs rdx, 0x5488353c9ddd92b4
movabs r8, 0xab77cac362226d4b
xor rdx, r8
xor rcx, rdx
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
or rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
cmp rax, 0
jne 0x1401a47cb
mov rcx, qword [rbp + 0x28]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
mov rax, qword [rbp + 0xb8]
cmp rax, 0
je 0x1401a480e
mov rcx, qword [rbp + 0xb8]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x1401a480e
mov rcx, qword [rbp + 0xb8]
sub rsp, 0x20
call fcn.140010918
add rsp, 0x20
mov rax, qword [rbp - 0x80]
mov rcx, qword [rbp - 0x78]
mov qword [rbp + 0xd8], rcx
mov qword [rbp + 0xe0], rax
lea rcx, [rbp + 0xd8]
sub rsp, 0x20
call fcn.14001ba90
add rsp, 0x20
mov rax, qword [rbp + 0x88]
lea rsp, [rbp + 0x170]
pop rbp
ret
mov dh, 0xa8
loop 0x1401a486e
jmp 0x1401a4301
xchg edi, eax
imul ebp, edx, 0xffffffed
jmp 0x1401a4417
out dx, eax
push rax
push rsi
add al, 0xe9
jrcxz 0x1401a485d
invalid
add byte [rax], al