Function at 0x140009010
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xd8
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rcx
mov rax, rcx
add rax, 0x28a2
mov qword [rsp + 0xd0], rax
mov al, byte [rcx + 0x28a2]
mov cl, 0xf1
xor cl, 0xf1
cmp al, cl
je 0x14000910e
mov eax, dword [0x140200668]
mov ecx, dword [0x14020066c]
mov edx, 0xb48d9eb7
xor edx, 0xc4e33f33
xor ecx, edx
sub eax, ecx
mov ecx, 0x76d9959f
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0x47b0f727
mov edx, 0xffffffff
xor edx, 0x47b0f727
and eax, edx
shl eax, 1
sub eax, ecx
sub eax, 0x64547f87
mov ecx, 0xcfc6697d
xor ecx, 0x9abce7d6
cmp eax, ecx
je 0x14000990b
mov rdx, qword [rsp + 0xc8]
mov eax, dword [0x140200670]
imul eax, dword [0x140200674]
and eax, 0xea727a1b
sub eax, 0xf714164a
mov ecx, 0x6f1a513c
xor ecx, 0xa5cde05b
add eax, ecx
add eax, 0xf714164a
add eax, 0xf8903928
mov ecx, 0xf8fd3091
xor ecx, 0xcd25e052
mov rdx, qword [rdx + 0x28a8]
mov qword [rsp + 0xb8], rdx
cmp eax, ecx
jbe 0x1400090a1
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0xb0], rax
jmp 0x1400093a8
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax + 0x2088]
mov qword [rsp + 0xa8], rax
cmp rax, 0x10000
jge 0x140009240
mov eax, dword [0x140200678]
xor eax, 0xc4030d0d
or eax, dword [0x14020067c]
mov r8d, eax
and r8d, r8d
xor r8d, 0xffffffff
and r8d, 0x5b3a9c46
xor r8d, 0xffffffff
mov ecx, 0x5b3a9c46
and ecx, 0x5b3a9c46
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
xor r8d, 0xffffffff
xor eax, 0xffffffff
or r8d, eax
mov eax, r8d
xor eax, 0xffffffff
and eax, 0xa4185b82
mov r9d, 0xfb82bc3a
xor r9d, 0x5f9ae7b8
mov ecx, 0x7049ad4e
xor ecx, 0x8fb652b1
xor r9d, ecx
and r8d, r9d
mov ecx, 0x133046f0
xor ecx, 0xb3e8223e
mov edx, 0xb57c82a7
xor edx, 0x4a837d58
xor ecx, edx
and ecx, 0xa4185b82
mov edx, 0x96e2f78e
xor edx, 0x363a9340
and edx, r9d
or eax, r8d
or ecx, edx
xor eax, ecx
and eax, 0xbe00afff
cmp eax, 0xa68109a3
ja 0x140009914
mov rcx, qword [rsp + 0xc8]
mov eax, dword [0x140200680]
xor edx, edx
div dword [0x140200684]
mov edx, eax
and edx, 0x4bbf2034
shl edx, 1
xor eax, 0x4bbf2034
add eax, edx
mov r8d, 0xc16d0d30
xor edx, edx
div r8d
add eax, 0x8c0e8319
mov qword [rcx + 0x28a8], 0x4000
cmp eax, 0x86c2c20a
je 0x1400091e0
mov eax, 0x4000
mov qword [rsp + 0xb0], rax
jmp 0x1400093a8
mov eax, dword [0x140200688]
mov edx, dword [0x14020068c]
mov ecx, 0xff0efc0
xor ecx, 0xff0efc0
sub ecx, edx
add eax, ecx
mov ecx, 0xf0b58f10
xor ecx, 0xbbc1803f
xor eax, ecx
mov ecx, 0xe02bf2c2
xor edx, edx
div ecx
imul eax, eax, 0xfdc18495
cmp eax, 0xa6aabdcf
ja 0x14000991d
mov rdx, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xa8]
mov eax, dword [0x140200690]
xor eax, 0xb6665497
mov ecx, dword [0x140200694]
xor ecx, 0x9406e028
add eax, ecx
mov ecx, 0x52d189fd
xor ecx, 0x2a8e5dc6
or eax, ecx
xor eax, 0x79eb5b2
imul eax, eax, 0xa9e3d2ea
mov ecx, 0xe7282a6a
xor ecx, 0xf3a8b3c7
mov dword [rsp + 0x9c], ecx
shr r8, 2
add r8, 0xfff
or r8, r8
xor r8, 0xffffffffffffffff
movabs rcx, 0xaa4dbf752296100
movabs r9, 0x755b2408add69100
xor rcx, r9
movabs r9, 0xd0f6df5702371f0b
movabs r10, 0x2f0920a8fdc8e0f4
xor r9, r10
xor rcx, r9
mov r9, 0xffffffffffffffff
movabs r10, 0x7ffffffffffff000
xor r9, r10
and rcx, r9
or r8, rcx
xor r8, 0xffffffffffffffff
mov r9, qword [rdx + 0x28a8]
movabs rcx, 0x1a7782a4449c331
movabs r10, 0x1a7782a4449c330
xor rcx, r10
shl r9, cl
mov ecx, dword [rsp + 0x9c]
mov r10, r8
sub r10, r9
cmovl r9, r8
mov r8, r9
sub r8, 0x3f000000
mov r8d, 0x3f000000
cmovl r8, r9
mov qword [rsp + 0xa0], r8
mov qword [rdx + 0x28a8], r8
cmp eax, ecx
jb 0x14000991d
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
jmp 0x1400093a8
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x90], rax
mov ecx, dword [0x140200698]
mov r8d, dword [0x14020069c]
mov eax, ecx
xor eax, 0xffffffff
mov edx, r8d
and edx, eax
mov r9d, r8d
xor r9d, 0xffffffff
mov eax, ecx
and eax, r9d
imul eax, edx
mov edx, ecx
and edx, r8d
or ecx, r8d
imul ecx, edx
add ecx, eax
mov edx, ecx
xor edx, 0xffffffff
and edx, 0xaa5917af
mov r8d, 0x3c3a236f
xor r8d, 0x966334c0
mov eax, 0x37b8f167
xor eax, 0xc8470e98
xor r8d, eax
mov eax, ecx
and eax, r8d
imul eax, edx
mov edx, ecx
and edx, 0xaa5917af
or ecx, 0xaa5917af
imul ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xd6d974ba
xor edx, 0xc5cfdb4d
and edx, eax
mov r8d, 0xffffffff
xor r8d, 0x1316aff7
mov eax, ecx
and eax, r8d
imul eax, edx
mov edx, ecx
and edx, 0x1316aff7
mov r8d, 0x21eed071
xor r8d, 0x32f87f86
or ecx, r8d
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, eax
mov edx, 0x38bb2791
xor edx, 0xc744d86e
xor eax, edx
mov edx, 0xdc65893e
xor edx, 0x239a76c1
xor eax, edx
mov edx, 0xffffffff
xor edx, 0x447378d
or eax, edx
mov edx, 0x73f16426
xor edx, 0x77b653ab
mov r8d, 0x4483bc7c
xor r8d, 0x40c48bf1
and edx, r8d
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xe76d5fed
xor ecx, 0x5cedbde0
cmp eax, ecx
jb 0x140009926
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xc8]
mov ecx, dword [0x1402006a0]
mov edx, dword [0x1402006a4]
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
and eax, edx
mov r10d, 0x261f3df3
xor r10d, 0xd9e0c20c
xor eax, r10d
and edx, edx
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x5a12999b
xor ecx, 0x90e12b6b
and eax, ecx
mov ecx, 0x8ca9477c
xor ecx, 0x805887fb
sub eax, ecx
mov ecx, 0xb7b8e2a1
xor ecx, 0xdec48e0e
sub eax, ecx
mov ecx, 0x93a31eaf
xor ecx, 0x9f52de28
add eax, ecx
mov ecx, 0x466a8d9f
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x90]
mov ecx, 0x51671e65
xor ecx, 0x86bba1d7
add r9, 0x28a8
mov qword [rsp + 0x80], r9
cmp rdx, r8
setl dl
mov byte [rsp + 0x8f], dl
cmp eax, ecx
ja 0x1400094d8
mov al, byte [rsp + 0x8f]
test al, 1
jne 0x1400095aa
jmp 0x1400095ce
mov rdx, qword [rsp + 0xc0]
call fcn.1400085c0
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
jmp 0x140009633
mov rdx, qword [rsp + 0x90]
call fcn.140008710
mov qword [rsp + 0x68], rax
cmp rax, 0
jne 0x140009619
mov rdx, qword [rsp + 0xc0]
call fcn.1400085c0
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
mov byte [rdx], 1
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
jmp 0x140009633
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0xc8]
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], r8
mov rax, r8
add rax, qword [rcx + 0x2070]
mov qword [rcx + 0x2070], rax
mov rax, r8
add rax, qword [rcx + 0x2080]
mov qword [rcx + 0x2080], rax
call fcn.140008b30
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xc8]
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0
mov qword [rax + 8], rdx
add rdx, rax
mov qword [rsp + 0x58], rdx
sar rdx, 0xc
add rcx, 0x20a0
mov qword [rsp + 0x60], rcx
call fcn.140008f86
test al, 1
jne 0x1400096c6
jmp 0x1400096ee
mov rax, qword [rsp + 0x58]
mov r8, qword [rsp + 0x48]
mov rcx, qword [rax]
and rcx, 1
mov rdx, r8
and rdx, rcx
xor rdx, 0xffffffffffffffff
add rcx, r8
add rcx, 1
add rcx, rdx
mov qword [rax], rcx
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0xc8]
mov r8, rax
add r8, 0x2090
mov qword [rsp + 0x30], r8
mov rax, qword [rax + 0x2090]
movabs r9, 0x5e01ae57121008d2
movabs r8, 0x5e01ae57121008d2
xor r9, r8
mov r8d, 0x1000
cmp rax, r9
cmove rax, r8
mov qword [rsp + 0x38], rax
sub rdx, rax
mov qword [rsp + 0x40], rdx
sar rdx, 0xc
call fcn.140008f86
test al, 1
jne 0x14000975d
jmp 0x1400098b8
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
cmp qword [rax + 8], rcx
jne 0x1400098b8
mov ecx, dword [0x1402006a8]
mov edx, dword [0x1402006ac]
mov eax, 0x6a4bbe5a
xor eax, 0x95b441a5
mov r8d, ecx
xor r8d, eax
mov eax, edx
and eax, r8d
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
or eax, 0x2b2e0826
mov ecx, 0xf599b503
xor ecx, 0x9499cfd
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0xa0a5aefe
xor edx, 0x37c34649
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x9766e8b7
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x9766e8b7
or eax, 0x9766e8b7
imul eax, edx
add eax, ecx
cmp eax, 0xfebb5dec
je 0x14000992f
mov r8, qword [rsp + 0x38]
mov ecx, dword [0x1402006b0]
xor ecx, 0x85194bf
mov edx, dword [0x1402006b4]
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
mov ecx, 0x82b7bf39
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x50]
mov r10d, 0xf212a00a
xor r10d, 0x990adcd5
mov ecx, 0xb99f81fa
xor ecx, 0x46607e05
xor r10d, ecx
mov r9d, eax
and r9d, r10d
mov ecx, eax
or ecx, r10d
xor ecx, 0xffffffff
imul ecx, r9d
mov r9d, eax
and r9d, 0x6b187cdf
or eax, 0x6b187cdf
imul eax, r9d
add eax, ecx
sub eax, 0x607a7841
mov ecx, 0xe7dbda9c
xor ecx, 0x7d90eb6c
mov rdx, qword [rdx]
movabs r10, 0x972a812348cc4321
movabs r9, 0x972a812348cc4320
xor r10, r9
mov r9, rdx
xor r9, r10
xor r9, 0xffffffffffffffff
or rdx, 1
and rdx, r9
or rdx, r8
mov qword [rsp + 0x28], rdx
cmp eax, ecx
jb 0x1400097ef
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
jmp 0x1400098e9
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax]
mov rax, rcx
and rax, 1
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
xor rdx, 1
or rcx, rdx
and rax, rcx
and eax, ecx
xor rax, 0xffffffffffffffff
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x20]
mov qword [rax], r8
mov qword [rcx], rdx
add rsp, 0xd8
ret
mul dword [rbp + 0x3c]
xchg edx, eax
jmp 0x1400090a1
clc
test al, 0x45
psubsw mm0, mm3
clc
invalid
jo 0x140009952
cld
mov ebp, 0xfff95ce9
call [rcx - 0x39]
jb 0x1400098de
pop rcx
invalid
jmp 0x1400094d8
jg 0x14000999d
in eax, dx
invalid
push rax