Function at 0x1400d3160
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x80
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rcx
mov rax, qword [rdx]
mov qword [rsp + 0x78], rax
cmp rax, 0
jle 0x1400d3527
mov rdx, qword [rsp + 0x78]
xor eax, eax
mov ecx, eax
sub rcx, 1
mov rax, rdx
sub rax, rcx
mov qword [rsp + 0x60], rax
mov rcx, rdx
or rcx, rcx
xor rcx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
xor r9, 0xffffffffffffffff
and r8, r9
xor rcx, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rcx, r8
or rdx, 0xffffffffffffffff
movabs r8, 0xe182c324d053b00b
movabs r9, 0x1e7d3cdb2fac4ff4
xor r8, r9
xor rdx, r8
or rcx, rdx
movabs rdx, 0x28c44a706ecbdab5
movabs r8, 0xd73bb58f9134254a
xor rdx, r8
xor rcx, rdx
and rax, rcx
movabs rcx, 0x66cf1ec93ce4de11
movabs rdx, 0x66cf1ec93ce4de11
xor rcx, rdx
cmp rax, rcx
jge 0x1400d3232
call fcn.140008024
jmp 0x1400d3527
mov rax, qword [rsp + 0x60]
cmp rax, 0
jge 0x1400d325e
mov rcx, qword [rsp + 0x60]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.14000c8ac
jmp 0x1400d3527
mov rax, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rdx + 8]
add rcx, 8
add rcx, qword [rdx]
mov qword [rsp + 0x48], rcx
mov rax, qword [rax + 8]
add rax, 8
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x40], rax
mov eax, dword [0x1401cdb70]
mov ecx, 0x18a5c3d6
xor ecx, 0x1f4da6d7
xor eax, ecx
imul eax, dword [0x1401cdb74]
and eax, 0xa08fd2bc
mov ecx, 0x8e8b8187
xor edx, edx
div ecx
mov ecx, 0x5aa02cfe
xor edx, edx
div ecx
cmp eax, 0x5edc3611
ja 0x1400d3530
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x60]
mov ecx, dword [0x1401cdb78]
or ecx, dword [0x1401cdb7c]
add ecx, 0x2c68cd0
mov r9d, 0x5385f5fc
xor r9d, 0x5f78c813
mov eax, ecx
and eax, r9d
xor eax, 0xffffffff
mov r9d, 0xc4b431a
xor r9d, 0xf3b4bce5
xor ecx, r9d
mov r9d, 0xffffffff
xor r9d, 0xcfd3def
or ecx, r9d
xor eax, 0xffffffff
mov r9d, 0xe46d58ad
xor r9d, 0x1b92a752
xor ecx, r9d
or eax, ecx
and eax, 0x872d7b45
mov ecx, 0xf4276a31
xor ecx, 0x18550c13
cmp rdx, r8
sete dl
mov byte [rsp + 0x3f], dl
cmp eax, ecx
je 0x1400d32d2
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x1400d343b
jmp 0x1400d336b
mov eax, dword [0x1401cdb80]
xor edx, edx
div dword [0x1401cdb84]
mov ecx, 0x798b46a1
xor ecx, 0x1b960101
imul eax, ecx
sub eax, 0xd7f9521d
mov ecx, 0x74708625
xor ecx, 0xafa663d6
sub eax, ecx
add eax, 0xd7f9521d
mov ecx, eax
xor ecx, 0xe55e0161
mov edx, 0xd0e692b7
xor edx, 0x2f196d48
xor ecx, edx
and ecx, 0xe55e0161
shl ecx, 1
mov edx, 0x90dc198a
xor edx, 0x758218eb
sub ecx, edx
sub eax, ecx
cmp eax, 0xc062605d
ja 0x1400d3539
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
mov eax, dword [0x1401cdb88]
xor eax, 0xa903c8e1
and eax, dword [0x1401cdb8c]
and eax, 0x7f21cc52
mov r9d, 0x68f00630
xor r9d, 0x575ae2f1
or eax, r9d
add eax, 0x88ea7528
mov r8b, byte [r8 + rcx]
mov byte [rdx + rcx], r8b
add rcx, 1
mov qword [rsp + 0x30], rcx
cmp eax, 0x5b363647
jbe 0x1400d33d6
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rax
jmp 0x1400d328c
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov r9, qword [rcx]
mov r8, qword [rax]
mov rcx, r8
add rcx, r9
mov qword [rsp + 0x28], rcx
movabs rax, 0x450336fa303a4d3b
movabs rdx, 0xbafcc905cfc5b2c4
xor rax, rdx
mov rdx, rcx
xor rdx, rax
movabs rax, 0x5fdb4da62cfb2d73
movabs r10, 0x67187e62ca9a28d2
xor rax, r10
and rax, rdx
mov r11, 0xffffffffffffffff
movabs rdx, 0x38c333c4e66105a1
xor r11, rdx
mov r10, rcx
and r10, r11
movabs rsi, 0x4457e77ede77d368
movabs rdx, 0xbba8188121882c97
xor rsi, rdx
mov rdx, r9
xor rdx, rsi
movabs rsi, 0x38c333c4e66105a1
and rdx, rsi
and r9, r11
or rax, r10
or rdx, r9
xor rax, rdx
mov rdx, rcx
and rdx, r8
shl rdx, 1
add rcx, r8
sub rcx, rdx
and rax, rcx
movabs rcx, 0x8a527439632cbf2c
movabs rdx, 0x8a527439632cbf2c
xor rcx, rdx
cmp rax, rcx
jge 0x1400d351a
call fcn.140008024
jmp 0x1400d3527
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x28]
mov qword [rax], rcx
add rsp, 0x80
pop rsi
ret
xor al, cl
movabs al, byte [0x6d7afffffd99e90e]
jp 0x1400d35a8
ror dword [rax], 1
jmp 0x1400d33d6
mov dword [rsp + 0x1c8], eax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x1d0], rax
cmp rcx, rax
sete dl
cmp rcx, 0
sete cl
or cl, dl
test cl, 1
mov qword [rsp + 0x1d8], rax
jne 0x1400d36fd
mov rax, qword [rsp + 0x1d0]
mov rdx, qword [rsp + 0x1c0]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
mov qword [rsp + 0x1d8], rax
jne 0x1400d36fd
mov eax, dword [0x1401cdb90]
mov edx, dword [0x1401cdb94]
xor edx, 0x502de139
mov ecx, edx
and ecx, eax
xor ecx, 0xffffffff
add eax, edx
add eax, 1
add eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xe682f886
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov r8d, 0x2877ecd2
xor r8d, 0xcef51454
mov edx, eax
and edx, r8d
or eax, 0xe682f886
imul eax, edx
add eax, ecx
sub eax, 0x75c416b9
mov ecx, 0xd27ef8ed
xor edx, edx
div ecx
cmp eax, 0xc65a5b48
ja 0x1400d3e86
mov rcx, qword [rsp + 0x1c0]
mov edx, dword [0x1401cdb98]
and edx, dword [0x1401cdb9c]
mov eax, edx
and eax, 0xae43f5d4
or edx, 0xae43f5d4
add eax, edx
mov r8d, 0x89b4979e
xor edx, edx
div r8d
mov edx, 0xcd2a8172
xor edx, 0xf0d39d6
xor eax, edx
mov dword [rsp + 0x194], eax
call fcn.14000e572
mov rcx, qword [rsp + 0x1c8]
mov eax, dword [rsp + 0x194]
mov rcx, qword [rcx]
mov qword [rsp + 0x198], rcx
cmp eax, 0xf01a57d2
je 0x1400d3e86
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x1d8], rax
jmp 0x1400d36fd
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x1b8]
mov r8, qword [rsp + 0x1d8]
mov r9, qword [rax]
mov qword [rcx], r9
mov qword [rdx], r8
mov rdx, rcx
add rdx, 0x10
mov qword [rsp + 0x158], rdx
mov rdx, rcx
add rdx, 0x18
mov qword [rsp + 0x160], rdx
mov rcx, qword [rcx + 0x18]
mov qword [rsp + 0x168], rcx
mov rdx, rax
add rdx, 0x10
mov qword [rsp + 0x170], rdx
mov rdx, rax
add rdx, 0x18
mov qword [rsp + 0x178], rdx
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x180], rax
cmp rcx, rax
sete r8b
cmp rcx, 0
sete dl
xor ecx, ecx
mov r9b, cl
xor r9b, 1
mov cl, dl
xor cl, r9b
xor r9d, r9d
mov r10b, r9b
xor r10b, 1
mov r9b, r8b
xor r9b, r10b
and cl, r9b
mov r9b, 1
xor r9b, 0
xor dl, r9b
xor r8b, 0xff
and dl, r8b
or cl, dl
xor cl, 0xff
test cl, 1
mov qword [rsp + 0x188], rax
jne 0x1400d382f
mov rax, qword [rsp + 0x180]
mov rcx, qword [rsp + 0x168]
mov rcx, qword [rcx]
movabs rdx, 0xf725be63e0870034
movabs r8, 0xb725be63e0870034
xor rdx, r8
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x188], rax
jne 0x1400d382f
mov rcx, qword [rsp + 0x168]
call fcn.14000e572
mov rax, qword [rsp + 0x178]
mov rax, qword [rax]
mov qword [rsp + 0x188], rax
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x160]
mov r9, qword [rsp + 0x158]
mov r10, qword [rsp + 0x170]
mov r8, qword [rsp + 0x188]
mov r10, qword [r10]
mov qword [r9], r10
mov qword [rdx], r8
mov rdx, rcx
add rdx, 0x20
mov qword [rsp + 0x120], rdx
mov rdx, rcx
add rdx, 0x28
mov qword [rsp + 0x128], rdx
mov rcx, qword [rcx + 0x28]
mov qword [rsp + 0x130], rcx
mov rdx, rax
add rdx, 0x20
mov qword [rsp + 0x138], rdx
mov rdx, rax
add rdx, 0x28
mov qword [rsp + 0x140], rdx
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x148], rax
cmp rcx, rax
sete dl
cmp rcx, 0
sete cl
or cl, dl
test cl, 1
mov qword [rsp + 0x150], rax
jne 0x1400d392b
mov rax, qword [rsp + 0x148]
mov rdx, qword [rsp + 0x130]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
mov qword [rsp + 0x150], rax
jne 0x1400d392b
mov rcx, qword [rsp + 0x130]
call fcn.14000e572
mov rax, qword [rsp + 0x140]
mov rax, qword [rax]
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x128]
mov r9, qword [rsp + 0x120]
mov r10, qword [rsp + 0x138]
mov r8, qword [rsp + 0x150]
mov r10, qword [r10]
mov qword [r9], r10
mov qword [rdx], r8
mov rdx, rcx
add rdx, 0x30
mov qword [rsp + 0xe8], rdx
mov rdx, rcx
add rdx, 0x38
mov qword [rsp + 0xf0], rdx
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0xf8], rcx
mov rdx, rax
add rdx, 0x30
mov qword [rsp + 0x100], rdx
mov rdx, rax
add rdx, 0x38
mov qword [rsp + 0x108], rdx
mov rax, qword [rax + 0x38]
mov qword [rsp + 0x110], rax
mov rdx, rcx
sub rdx, rax
sete r8b
test rcx, rcx
sete cl
mov dl, r8b
and dl, cl
add cl, r8b
sub cl, dl
test cl, 1
mov qword [rsp + 0x118], rax
jne 0x1400d3a48
mov rax, qword [rsp + 0x110]
mov rdx, qword [rsp + 0xf8]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
movabs rdx, 0xd737c6762a9f8a28
movabs r8, 0xd737c6762a9f8a28
xor rdx, r8
cmp rcx, rdx
mov qword [rsp + 0x118], rax
jne 0x1400d3a48
mov rcx, qword [rsp + 0xf8]
call fcn.14000e572
mov rax, qword [rsp + 0x108]
mov rax, qword [rax]
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0xf0]
mov r9, qword [rsp + 0xe8]
mov r10, qword [rsp + 0x100]
mov r8, qword [rsp + 0x118]
mov r10, qword [r10]
mov qword [r9], r10
mov qword [rdx], r8
mov rdx, rcx
add rdx, 0x40
mov qword [rsp + 0xb0], rdx
mov rdx, rcx
add rdx, 0x48
mov qword [rsp + 0xb8], rdx
mov rcx, qword [rcx + 0x48]
mov qword [rsp + 0xc0], rcx
mov rdx, rax
add rdx, 0x40
mov qword [rsp + 0xc8], rdx
mov rdx, rax
add rdx, 0x48
mov qword [rsp + 0xd0], rdx
mov rax, qword [rax + 0x48]
mov qword [rsp + 0xd8], rax
cmp rcx, rax
sete dl
cmp rcx, 0
sete cl
or cl, dl
test cl, 1
mov qword [rsp + 0xe0], rax
jne 0x1400d3b54
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xc0]
mov rcx, qword [rcx]
movabs rdx, 0x17ade40f15866a93
movabs r8, 0x57ade40f15866a93
xor rdx, r8
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0xe0], rax
jne 0x1400d3b54
mov rcx, qword [rsp + 0xc0]
call fcn.14000e572
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0xb8]
mov r9, qword [rsp + 0xb0]
mov r10, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xe0]
mov r10, qword [r10]
mov qword [r9], r10
mov qword [rdx], r8
mov rdx, rcx
add rdx, 0x50
mov qword [rsp + 0x78], rdx
mov rdx, rcx
add rdx, 0x58
mov qword [rsp + 0x80], rdx
mov rcx, qword [rcx + 0x58]
mov qword [rsp + 0x88], rcx
mov rdx, rax
add rdx, 0x50
mov qword [rsp + 0x90], rdx
mov rdx, rax
add rdx, 0x58
mov qword [rsp + 0x98], rdx
mov rax, qword [rax + 0x58]
mov qword [rsp + 0xa0], rax
cmp rcx, rax
sete r11b
cmp rcx, 0
sete bl
mov dl, bl
xor dl, 0xff
mov r9b, r11b
xor r9b, 0xff
mov r8b, 1
xor r8b, 1
mov cl, dl
and cl, 0xff
and bl, r8b
mov r10b, r9b
and r10b, 0xff
and r11b, r8b
or cl, bl
or r10b, r11b
xor cl, r10b
or dl, r9b
xor dl, 0xff
or r8b, 1
and dl, r8b
or cl, dl
test cl, 1
mov qword [rsp + 0xa8], rax
jne 0x1400d3cf4
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rcx]
movabs r8, 0x242c15a2ee0fea
movabs rcx, 0xffdbd3ea5d11f015
xor r8, rcx
mov rcx, rdx
xor rcx, r8
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0x4000000000000000
movabs r8, 0x4000000000000000
or rdx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0x7d97b6b2e519d653
movabs r9, 0x8268494d1ae629ac
xor r8, r9
xor rcx, r8
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0xd52bf2413e118e5c
movabs r8, 0xd52bf2413e118e5c
xor rdx, r8
cmp rcx, rdx
mov qword [rsp + 0xa8], rax
jne 0x1400d3cf4
mov rcx, qword [rsp + 0x88]
call fcn.14000e572
mov rax, qword [rsp + 0x98]
mov rax, qword [rax]
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x1a8]
mov rax, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x80]
mov r9, qword [rsp + 0x78]
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0xa8]
mov r10, qword [r10]
mov qword [r9], r10
mov qword [rdx], r8
mov rdx, rax
add rdx, 0x60
mov qword [rsp + 0x50], rdx
mov rdx, rax
add rdx, 0x68
mov qword [rsp + 0x58], rdx
mov rax, qword [rax + 0x68]
mov rdx, rcx
add rdx, 0x60
mov qword [rsp + 0x60], rdx
mov rdx, rcx
add rdx, 0x68
mov qword [rsp + 0x68], rdx
cmp rax, qword [rcx + 0x68]
mov qword [rsp + 0x70], rax
je 0x1400d3da3
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax]
mov qword [rsp + 0x1f0], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x1f8], rax
lea rcx, [rsp + 0x1f0]
call fcn.140017fc0
mov rax, qword [rsp + 0x68]
mov rax, qword [rax]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x1a8]
mov rax, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x60]
mov r8, qword [rsp + 0x70]
mov r10, qword [r10]
mov qword [r9], r10
mov qword [rdx], r8
mov rdx, rax
add rdx, 0x70
mov qword [rsp + 0x28], rdx
mov rdx, rax
add rdx, 0x78
mov qword [rsp + 0x30], rdx
mov rax, qword [rax + 0x78]
mov rdx, rcx
add rdx, 0x70
mov qword [rsp + 0x38], rdx
mov rdx, rcx
add rdx, 0x78
mov qword [rsp + 0x40], rdx
cmp rax, qword [rcx + 0x78]
mov qword [rsp + 0x48], rax
je 0x1400d3e60
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax]
mov qword [rsp + 0x1e0], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x1e8], rax
lea rcx, [rsp + 0x1e0]
call fcn.14005e950
mov rax, qword [rsp + 0x1b0]
mov al, byte [rax]
mov cl, 0x6e
xor cl, 0x6e
cmp al, cl
jne 0x1400d3e7d
mov rax, qword [rsp + 0x40]
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov r8, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
mov r8, qword [r8]
mov qword [rdx], r8
mov qword [rax], rcx
add rsp, 0x200
pop rbx
ret
jg 0x1400d3ebf
int 0x29
jmp 0x1400d367c
and al, 0xf0
add byte [rax], al
add byte [rax - 0x75], cl
add cl, byte [rax - 0x77]
test byte [rax + rdi*8], ah
add byte [rax], al
add byte [rax - 0x7d], cl
clc
add byte [rdi], cl
lea esp, [rax]
add byte [rax], al
add byte [rax - 0x75], cl
mov word [rax + rdi*8], fs
add byte [rax], al
add byte [rcx], dh
ror byte [rcx - 0x47b63e], 0xff