Function at 0x140015140
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xd8
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xd0], rcx
mov eax, dword [0x1401d5ac8]
xor edx, edx
div dword [0x1401d5acc]
xor ecx, ecx
sub ecx, 0x34d059c5
sub eax, ecx
mov ecx, 0xb9cea199
xor ecx, 0x2a72763
xor eax, ecx
mov ecx, 0xde43d68a
xor edx, edx
div ecx
cmp eax, 0x58570715
je 0x140015da6
mov eax, dword [0x1401d5ad0]
xor edx, edx
div dword [0x1401d5ad4]
mov rdx, qword [rsp + 0xc8]
imul r9d, eax, 0x3a52ede5
mov ecx, 0xed57b536
xor ecx, 0x12a84ac9
mov eax, r9d
xor eax, ecx
and eax, 0x8e050b2f
mov r8d, 0xffffffff
xor r8d, 0x8e050b2f
and r9d, r8d
mov ecx, 0xffffffff
xor ecx, 0x2efc2071
mov r10d, 0x3489add
xor r10d, 0x8d4d91f2
and ecx, r10d
and r8d, 0x2efc2071
or eax, r9d
or ecx, r8d
xor eax, ecx
sub eax, 0xe72fa0ce
mov ecx, 0xf9bdc300
xor ecx, 0x897d3a0d
sub eax, ecx
add eax, 0xe72fa0ce
mov ecx, 0x951b6379
xor ecx, 0x9758240f
cmp rdx, 0
sete dl
mov byte [rsp + 0xc7], dl
cmp eax, ecx
je 0x140015190
mov al, byte [rsp + 0xc7]
test al, 1
jne 0x140015d8b
jmp 0x140015248
mov rax, qword [rsp + 0xd0]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0xb0], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0xb8], rax
cmp rax, 0
je 0x14001529f
mov rax, qword [rsp + 0xb8]
mov rax, qword [rax]
mov qword [rsp + 0xa8], rax
movabs rcx, 0x4000000000000000
and rax, rcx
cmp rax, 0
je 0x1400158ce
mov rcx, qword [rsp + 0xc8]
movabs rdx, 0x169c92543197b972
mov rax, rcx
add rax, rdx
movabs rdx, 0x700b57959714499c
movabs r8, 0x700b57959714499d
xor rdx, r8
add rax, rdx
movabs rdx, 0x169c92543197b972
sub rax, rdx
mov qword [rsp + 0xa0], rax
mov rdx, rcx
xor rdx, 0xffffffffffffffff
mov r8, rcx
xor r8, 0xffffffffffffffff
and rdx, r8
mov r8, 0xffffffffffffffff
or r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
movabs r9, 0xe5601aaf5a761561
movabs r10, 0x1a9fe550a589ea9e
xor r9, r10
xor rdx, r9
xor r8, 0xffffffffffffffff
and rdx, r8
or rcx, 0xffffffffffffffff
movabs r8, 0x399dff4a4f73add1
movabs r9, 0xc66200b5b08c522e
xor r8, r9
xor rcx, r8
or rdx, rcx
xor rdx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
movabs rcx, 0xae913c99a67d8c6b
movabs r8, 0x159cce2618c30741
xor rcx, r8
movabs r8, 0xc09c99b54945165c
movabs r9, 0x3f63664ab6bae9a3
xor r8, r9
xor rcx, r8
or rax, rdx
movabs rdx, 0xbb0df2bfbebe8b2a
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x1400153b0
call fcn.1400077a3
jmp 0x140015d9e
mov rdx, qword [rsp + 0xc8]
movabs rcx, 0x4bf592745524f110
movabs rax, 0x4bf592745524f119
xor rcx, rax
mov rax, rdx
add rax, rcx
mov qword [rsp + 0x98], rax
mov rcx, 0xfffffffffffffffe
sub rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x1400153fe
call fcn.1400077a3
jmp 0x140015d9e
mov rax, qword [rsp + 0x98]
cmp rax, 0
jge 0x140015420
mov rcx, r8
mov rdx, r8
call fcn.14000d167
jmp 0x140015d9e
mov rcx, qword [rsp + 0x98]
call fcn.14000aa66
mov r8, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xc8]
mov rcx, rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x88], rcx
mov qword [r8], rcx
mov qword [rcx], rdx
mov rax, qword [rax]
mov qword [rsp + 0x90], rax
cmp rax, 0
jle 0x14001576c
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0xc8]
mov rdx, rcx
sub rdx, rax
cmovl rax, rcx
mov qword [rsp + 0x80], rax
cmp rax, 0
jge 0x1400154a7
mov rcx, r8
mov rdx, r8
call fcn.14000d167
jmp 0x140015d9e
mov r8, qword [rsp + 0x80]
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x88]
add rcx, 8
add rdx, 8
call fcn.140032cd0
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
cmp rax, rcx
jge 0x14001574f
mov r8, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xc8]
mov rcx, rdx
sub rcx, r8
mov qword [rsp + 0x70], rcx
mov rax, rcx
xor rax, 0xffffffffffffffff
mov r9, rcx
xor r9, 0xffffffffffffffff
or rax, r9
xor rax, 0xffffffffffffffff
mov r9, rdx
xor r9, 0xffffffffffffffff
or rax, r9
movabs r10, 0xafda3b9335ddc20f
movabs r9, 0x5025c46cca223df0
xor r10, r9
mov r9, rdx
xor r9, r10
xor rdx, 0xffffffffffffffff
or r9, rdx
movabs r10, 0xce6040eb72c2d066
movabs rdx, 0x319fbf148d3d2f99
xor r10, rdx
mov rdx, rcx
xor rdx, r10
movabs r10, 0xe937d357f162dddc
movabs r11, 0x16c82ca80e9d2223
xor r10, r11
xor r9, r10
or rdx, r9
movabs r9, 0xe51b3944686d3e1
movabs r10, 0xf1ae4c6bb9792c1e
xor r9, r10
xor rax, r9
xor rdx, 0xffffffffffffffff
or rax, rdx
cmp rax, 0
setl al
mov r9, rcx
and r9, r8
movabs rdx, 0x1cd557b87a7511d3
movabs r10, 0x1cd557b87a7511d1
xor rdx, r10
imul rdx, r9
add rcx, r8
sub rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x1400155e7
jmp 0x1400155f1
call fcn.1400077a3
jmp 0x140015d9e
mov rdx, qword [rsp + 0x70]
movabs rax, 0xc5492f335b9922d1
movabs rcx, 0xc5492f335b9922d1
xor rax, rcx
sub rax, rdx
xor ecx, ecx
sub rcx, 1
add rax, rcx
xor ecx, ecx
sub rcx, rax
mov qword [rsp + 0x68], rcx
xor rdx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jge 0x140015648
call fcn.1400077a3
jmp 0x140015d9e
mov rax, qword [rsp + 0x68]
cmp rax, 0
jge 0x140015729
mov ecx, dword [0x1401d5ad8]
sub ecx, dword [0x1401d5adc]
and ecx, 0xd5b690c8
mov edx, ecx
xor edx, 0xffffffff
and edx, 0x4aa8c092
mov r8d, 0xffffffff
xor r8d, 0x4aa8c092
mov eax, ecx
and eax, r8d
imul eax, edx
mov edx, ecx
and edx, 0x4aa8c092
mov r8d, 0xa4348b13
xor r8d, 0xee9c4b81
or ecx, r8d
imul ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x320f13e8
or ecx, 0x320f13e8
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x5b9f12df
je 0x140015daf
mov eax, dword [0x1401d5ae0]
xor eax, 0x48b59c3
imul eax, dword [0x1401d5ae4]
mov ecx, 0x9138cc40
xor ecx, 0xf854ce9
and eax, ecx
and eax, 0x909de04b
add eax, 0xe0d8cc2b
mov dword [rsp + 0x64], eax
mov eax, 0x4484c377
xor eax, 0xf04b50dd
mov dword [rsp + 0x60], eax
mov rcx, r8
mov rdx, r8
call fcn.14000d167
mov ecx, dword [rsp + 0x60]
mov eax, dword [rsp + 0x64]
cmp eax, ecx
jb 0x1400156ce
jmp 0x140015d9e
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xb0]
mov rcx, qword [rcx]
add rcx, 8
add rcx, rax
call fcn.140007f04
jmp 0x140015d73
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax]
mov byte [rax + rcx + 8], 0
jmp 0x140015d73
mov rax, qword [rsp + 0xa0]
movabs rcx, 0x3625a4f5867451bb
movabs rdx, 0x3625a4f5867451bb
xor rcx, rdx
cmp rax, rcx
jl 0x1400158be
mov eax, dword [0x1401d5ae8]
imul eax, dword [0x1401d5aec]
xor eax, 0x7e3e2802
sub eax, 0xa80099f2
mov ecx, 0x825b996d
xor ecx, 0x1b185f98
sub eax, ecx
cmp eax, 0xd6484f38
ja 0x140015db8
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x88]
mov r8d, dword [0x1401d5af0]
mov eax, 0xeb991ee4
xor eax, 0x824b194a
xor r8d, eax
mov r10d, dword [0x1401d5af4]
mov r9d, 0xad4e0a39
xor r9d, 0x52b1f5c6
mov eax, r8d
xor eax, r9d
mov r9d, r8d
xor r9d, 0xffffffff
or eax, r9d
and eax, r10d
xor eax, 0xffffffff
mov r9d, r10d
xor r9d, 0xffffffff
mov r11d, 0xa8dcaf8a
xor r11d, 0x57235075
xor r10d, r11d
or r9d, r10d
xor r8d, 0xffffffff
mov r10d, 0xb4dce54
xor r10d, 0xf4b231ab
xor r9d, r10d
or r8d, r9d
and eax, r8d
mov r8d, 0xa0f7fe0e
xor r8d, 0x5f0801f1
xor eax, r8d
mov r9d, 0x9938ea09
xor r9d, 0x6882358e
mov r8d, 0x3f177864
xor r8d, 0xc0e8879b
xor r9d, r8d
mov r8d, eax
and r8d, r9d
mov r9d, eax
xor r9d, 0xf1badf87
add eax, r9d
sub eax, r8d
mov r8d, 0x970f514
xor r8d, 0x7d49856c
add eax, r8d
add eax, 0x9f87fd92
mov dword [rsp + 0x5c], eax
add rcx, 8
call fcn.140007f04
mov eax, dword [rsp + 0x5c]
cmp eax, 0xbf23751e
jae 0x140015db8
jmp 0x140015d73
mov rcx, r8
mov rdx, r8
call fcn.14000d167
jmp 0x140015d9e
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc8]
cmp qword [rax], rcx
jge 0x140015d73
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xa8]
movabs rdx, 0x1a617a210ccba693
movabs r8, 0xa59e85def334596c
xor rdx, r8
and rax, rdx
mov qword [rsp + 0x50], rax
cmp rax, rcx
jge 0x140015d73
mov ecx, dword [0x1401d5af8]
mov edx, dword [0x1401d5afc]
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0xac022213
add eax, ecx
mov ecx, 0x168a44df
xor ecx, 0x168a44df
mov edx, 0xd0d3f1c4
xor edx, 0x31d1db9d
sub ecx, edx
add eax, ecx
mov r8d, 0x37659a88
xor r8d, 0x5a44f693
mov ecx, 0x82f586ba
xor ecx, 0x7d0a7945
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x6d216c1b
or eax, 0x6d216c1b
imul eax, edx
add eax, ecx
cmp eax, 0x7ab175b4
je 0x140015dc1
mov rcx, qword [rsp + 0x50]
mov eax, dword [0x1401d5b00]
xor eax, 0x562725d3
add eax, dword [0x1401d5b04]
mov edx, eax
and edx, 0x44affd9c
mov r8d, 0xeafe46b6
xor r8d, 0x1501b949
xor edx, r8d
xor eax, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x44affd9c
or eax, r8d
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
mov r8d, 0x75500a08
xor r8d, 0x8aaff5f7
mov eax, edx
xor eax, r8d
mov r8d, 0xffffffff
xor r8d, 0x91c55e7f
and eax, r8d
or edx, 0x91c55e7f
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov r8d, 0x71d478bc
xor r8d, 0xc85f9c7b
xor edx, edx
div r8d
mov dword [rsp + 0x3c], eax
call fcn.1400127c0
mov r8, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xa8]
mov r9, rax
mov eax, dword [rsp + 0x3c]
mov r10, r9
sub r10, r8
cmovg r8, r9
mov qword [rsp + 0x40], r8
add rcx, 1
xor rdx, 0xffffffffffffffff
and rcx, rdx
cmp rcx, 0
setl cl
mov byte [rsp + 0x4f], cl
cmp eax, 0xf6876ac5
ja 0x1400159a4
mov al, byte [rsp + 0x4f]
test al, 1
jne 0x140015a95
jmp 0x140015ba8
mov ecx, dword [0x1401d5b08]
xor ecx, 0x4797bc68
mov eax, dword [0x1401d5b0c]
xor eax, 0xb0be0572
add ecx, 0x19daeaec
sub ecx, eax
sub ecx, 0x19daeaec
mov edx, 0x86bdbe75
xor edx, 0x7942418a
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x130aeba2
or eax, edx
mov edx, 0x469ed652
xor edx, 0x55943df0
mov r8d, 0xb7fe095c
xor r8d, 0xa4f4e2fe
and edx, r8d
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
mov ecx, 0xb5e368d7
xor ecx, 0x4a1c9728
xor eax, ecx
and eax, 0x2f8d3908
mov ecx, 0xffffffff
xor ecx, 0xda2c51d8
add eax, ecx
mov ecx, 0xa5d70d00
xor ecx, 0xa5d70d01
add eax, ecx
cmp eax, 0x7c3c78a4
je 0x140015dca
mov ecx, dword [0x1401d5b10]
sub ecx, dword [0x1401d5b14]
sub ecx, 0x1aef346a
xor eax, eax
sub eax, 0x4a96ec97
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x7eb30e2c
and eax, edx
mov edx, 0x4f0be0e7
xor edx, 0x31b8eecb
or ecx, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x58bdacbd
xor ecx, 0xa7425342
xor eax, ecx
mov dword [rsp + 0x38], eax
call fcn.1400077a3
mov eax, dword [rsp + 0x38]
cmp eax, 0xfe961208
jae 0x140015b3f
jmp 0x140015d9e
mov rdx, qword [rsp + 0x50]
movabs rcx, 0xdf49bae8bf65bb13
mov rax, rdx
sub rax, rcx
add rax, 9
movabs rcx, 0xdf49bae8bf65bb13
add rax, rcx
mov qword [rsp + 0x30], rax
mov rcx, 0xfffffffffffffffe
movabs r8, 0x97b5b7c488b3b73a
sub rcx, r8
sub rcx, rdx
movabs rdx, 0x97b5b7c488b3b73a
add rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x140015c0e
call fcn.1400077a3
jmp 0x140015d9e
mov rax, qword [rsp + 0x50]
cmp rax, 0xfffffffffffffff7
jge 0x140015c2d
mov rcx, r8
mov rdx, r8
call fcn.14000d167
jmp 0x140015d9e
mov rcx, qword [rsp + 0x40]
mov rdx, rcx
and rdx, 1
movabs rax, 0x1aafb7790f013194
movabs r8, 0x1aafb7790f013196
xor rax, r8
imul rdx, rax
mov rax, rcx
xor rax, 1
add rax, rdx
movabs rdx, 0x612511fae8dfdbeb
movabs r8, 0x9edaee0517202414
xor rdx, r8
xor rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x140015c8f
call fcn.1400077a3
jmp 0x140015d9e
mov rdx, qword [rsp + 0x40]
mov rcx, 0xffffffffffffffff
xor rcx, 9
xor eax, eax
sub rax, 1
sub rcx, rax
mov rax, rdx
sub rax, rcx
mov qword [rsp + 0x28], rax
mov rcx, 0xfffffffffffffffe
sub rcx, rdx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0x8adaec76715146bb
xor rdx, r8
or rax, rcx
movabs rcx, 0x1072b113f50fa1b9
movabs r8, 0x9aa85d65845ee702
xor rcx, r8
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0x4218f7b6e79336f
movabs rdx, 0x4218f7b6e79336f
xor rcx, rdx
cmp rax, rcx
jge 0x140015d27
call fcn.1400077a3
jmp 0x140015d9e
mov rax, qword [rsp + 0x28]
cmp rax, 0
jge 0x140015d46
mov rcx, r8
mov rdx, r8
call fcn.14000d167
jmp 0x140015d9e
mov rax, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rax]
call fcn.14001101f
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x40]
mov qword [rdx], rax
mov qword [rax], rcx
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax]
mov byte [rax + rcx + 8], 0
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc8]
mov qword [rax], rcx
add rsp, 0xd8
ret
outsb dx, byte [rsi]
cmp eax, 0xe1e97846
invalid
pop rdx
hlt
stc
invalid
jno 0x140015db5
and al, 0xad
jmp 0x1400157c3
in eax, 0xde
invalid
movsd dword [rdi], dword [rsi]
sub edi, edx
mov bl, 0xe9
insb byte [rdi], dx
std
invalid