Function at 0x140022ac0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x68], rcx
call fcn.14000b1d6
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
add rax, 0x60
mov qword [rsp + 0x78], rax
mov rax, qword [rcx]
mov qword [rsp + 0x80], rax
cmp rax, rdx
jle 0x140022b11
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
call fcn.1400227a0
jmp 0x140023025
mov r8d, dword [0x1401c9158]
xor r8d, 0xe854d28c
mov edx, dword [0x1401c915c]
mov eax, 0x1cbd669b
xor eax, 0x646c91e5
xor edx, eax
mov ecx, 0xfdb7ba81
xor ecx, 0x248457e
mov eax, r8d
xor eax, ecx
and eax, 0x9e27570b
mov r9d, 0xffffffff
xor r9d, 0x9e27570b
and r8d, r9d
mov r10d, 0xe07c6f21
xor r10d, 0x1f8390de
mov ecx, edx
xor ecx, r10d
mov r10d, 0x2a1b3966
xor r10d, 0xb43c6e6d
and ecx, r10d
and edx, r9d
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, 0x85a10bb3
xor ecx, 0xa1cef205
add eax, ecx
imul eax, eax, 0xa9ff64ac
mov r8d, 0xb152b353
xor r8d, 0xcd5b951
mov ecx, 0x995988ec
xor ecx, 0x66a67713
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, 0xbd870a02
or eax, 0xbd870a02
imul eax, edx
add eax, ecx
mov ecx, 0xe0339474
xor ecx, 0xa94a31f2
cmp eax, ecx
je 0x140023129
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x70]
mov eax, dword [0x1401c9160]
mov r9d, dword [0x1401c9164]
mov ecx, eax
and ecx, r9d
shl ecx, 1
add eax, r9d
sub eax, ecx
or eax, 0x2e50455a
xor eax, 0x840a1e77
add eax, 0xd55a497b
mov ecx, 0x68f05bcc
xor ecx, 0x8059977e
add eax, ecx
sub eax, 0xd55a497b
mov ecx, 0x859bb1e4
xor ecx, 0xc96f8294
cmp rdx, r8
setl dl
mov byte [rsp + 0x67], dl
cmp eax, ecx
ja 0x140022be5
mov al, byte [rsp + 0x67]
test al, 1
jne 0x140022c5b
jmp 0x140023025
mov rax, qword [rsp + 0x68]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x50], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x58], rax
cmp rax, 0
je 0x140022de5
mov eax, dword [0x1401c9168]
imul eax, dword [0x1401c916c]
mov r8d, 0xbaa89f06
xor r8d, 0x27cbe74e
mov ecx, 0x238e1bca
xor ecx, 0xdc71e435
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0xc0f55d1b
xor r8d, 0x3f0aa2e4
xor ecx, r8d
imul ecx, edx
mov r8d, 0x79e0e855
xor r8d, 0xe483901d
mov edx, eax
and edx, r8d
or eax, 0x9d637848
imul eax, edx
add eax, ecx
and eax, 0x28468d2
imul eax, eax, 0x874862bf
mov ecx, 0xebed15a2
xor ecx, 0x6385d43c
cmp eax, ecx
je 0x140023132
mov rcx, qword [rsp + 0x58]
mov eax, dword [0x1401c9170]
mov edx, 0x2bfe8cd
xor edx, 0x41441793
xor eax, edx
xor edx, edx
div dword [0x1401c9174]
mov rdx, qword [rsp + 0x70]
mov r8d, 0xf71f8b15
xor r8d, 0x9872cffe
xor eax, r8d
add eax, 0x7c345701
and eax, 0x694c6ef8
mov r8, qword [rcx]
movabs r9, 0x6e2c8780e9bf9cde
movabs rcx, 0xd1d3787f16406321
xor r9, rcx
mov rcx, r8
and rcx, r9
movabs r9, 0x94822f6ac0b67632
movabs r10, 0x6b7dd0953f4989cd
xor r9, r10
xor rcx, r9
movabs r9, 0xbfffffffffffffff
and r8, r9
xor r8, 0xffffffffffffffff
movabs r9, 0xddbfb6e2a68bc620
movabs r10, 0x2240491d597439df
xor r9, r10
xor rcx, r9
movabs r9, 0xec4c4f0867465d71
movabs r10, 0x13b3b0f798b9a28e
xor r9, r10
xor r8, r9
or rcx, r8
cmp rcx, rdx
setl cl
mov byte [rsp + 0x4f], cl
cmp eax, 0xd5828d9c
ja 0x140023132
mov al, byte [rsp + 0x4f]
test al, 1
jne 0x140022de5
jmp 0x140022f60
mov r8, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x70]
movabs rcx, 0x8ab334da2a48e048
movabs rax, 0x754ccb25d5b71fb7
xor rcx, rax
mov rax, r8
xor rax, rcx
mov rcx, rdx
add rcx, rax
add rcx, 1
mov qword [rsp + 0x40], rcx
mov rax, rcx
xor rax, rdx
cmp rax, 0
setl al
mov r9, rcx
xor r9, r8
xor r9, 0xffffffffffffffff
mov rdx, r8
and rdx, r9
shl rdx, 1
sub rdx, r8
sub rcx, rdx
movabs rdx, 0x69717403bea6a704
movabs r8, 0x968e8bfc415958fb
xor rdx, r8
cmp rcx, rdx
setg cl
and al, cl
test al, 1
jne 0x140022f56
mov eax, dword [0x1401c9178]
mov edx, dword [0x1401c917c]
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor eax, 0xdaedb4e7
mov ecx, 0xfe2b066c
xor ecx, 0xa053b62a
xor eax, ecx
or eax, 0x485b421c
mov ecx, 0x2542a218
xor ecx, 0x3e16501
cmp eax, ecx
jbe 0x14002313b
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x80]
mov edx, dword [0x1401c9180]
mov eax, 0xed0ca0a0
xor eax, 0xd6f6f4bb
xor edx, eax
mov eax, dword [0x1401c9184]
mov r9d, 0x2c98cec8
xor r9d, 0x92a099d2
xor eax, r9d
mov r9d, 0x534bf8d
xor r9d, 0x80998895
sub edx, r9d
add edx, eax
add edx, 0x85ad3718
and edx, 0x6ab6af0d
mov r9d, 0xffffffff
xor r9d, 0x682cfd0
mov eax, edx
xor eax, r9d
and eax, edx
mov r9d, 0xa789154e
xor edx, edx
div r9d
mov rdx, qword [rsp + 0x58]
mov dword [rsp + 0x3c], eax
mov r9d, 8
mov qword [rsp + 0x20], 8
call fcn.140010bb0
mov rcx, qword [rsp + 0x50]
mov rdx, rax
mov eax, dword [rsp + 0x3c]
mov qword [rcx], rdx
cmp eax, 0x3fb7faee
ja 0x140022ea8
jmp 0x140022f60
call fcn.140008024
jmp 0x140023025
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x70]
mov qword [rcx], rdx
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x28], rax
cmp rax, rcx
jge 0x140023025
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 3
add rcx, rax
xor eax, eax
mov edx, eax
call fcn.140081ba3
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
jne 0x140023025
mov rdx, qword [rsp + 0x28]
xor eax, eax
mov ecx, eax
sub rcx, 1
mov rax, rdx
sub rax, rcx
mov rcx, rdx
xor rcx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
and rcx, 0xffffffffffffffff
shl rcx, 1
sub rcx, 0xffffffffffffffff
sub rdx, rcx
movabs rcx, 0xf3dd1c7f1f65a280
movabs r8, 0xc22e380e09a5d7f
xor rcx, r8
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
and rcx, rax
cmp rcx, 0
mov qword [rsp + 0x30], rax
jge 0x140022f7a
call fcn.140008024
mov ecx, dword [0x1401c9188]
mov eax, dword [0x1401c918c]
mov edx, 0xa5b3f79d
xor edx, 0xc6bba407
xor eax, edx
add ecx, eax
mov edx, 0x6b3dee4a
xor edx, 0x94c211b5
mov eax, ecx
xor eax, edx
mov edx, 0xffffffff
xor edx, 0x14f4a024
and eax, edx
xor ecx, 0xffffffff
mov edx, 0x3c3200dd
xor edx, 0x28c6a0f9
mov r8d, 0xa09c9807
xor r8d, 0x5f6367f8
xor edx, r8d
and ecx, edx
mov edx, 0x9acd8095
xor edx, 0x65327f6a
xor eax, edx
mov edx, 0xd02d3152
xor edx, 0x2fd2cead
xor ecx, edx
and eax, ecx
or eax, 0x8767a559
xor ecx, ecx
sub ecx, 0x5a14b715
add eax, ecx
mov ecx, 0x60cfcfeb
xor ecx, 0x87d8a7aa
cmp eax, ecx
ja 0x140023144
mov eax, dword [0x1401c9190]
and eax, dword [0x1401c9194]
mov ecx, 0x8715231d
xor ecx, 0x78eadce2
xor eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xd64cdd07
mov edx, 0xffffffff
xor edx, 0x8258a4f6
or eax, ecx
mov ecx, 0x6c79df12
xor ecx, 0xee217be4
or ecx, edx
mov edx, 0x55c0364b
xor edx, 0xaa3fc9b4
xor eax, edx
and eax, ecx
mov ecx, 0x53bfc6ed
xor edx, edx
div ecx
imul eax, eax, 0x59445dd5
cmp eax, 0x599d0877
ja 0x140023144
add rsp, 0x88
ret
mov r9d, 0xb3e98dd7
cli
invalid
movsd dword [rdi], dword [rsi]
jrcxz 0x14002315b
call 0x13ffdf523
jmp qword [rdx - 0x1627edd4]
movabs byte [0xfffffd64e9d8122c], al
sbb al, 0xa0
mov ecx, 0xff6de940
invalid
and al, 0x30
mov eax, dword [0x1401c9198]
mov ecx, dword [0x1401c919c]
xor ecx, 0x9eb1d51c
and eax, ecx
sub eax, 0x9449866b
mov ecx, 0xee28949c
xor ecx, 0x43e7e540
or eax, ecx
mov ecx, 0x4e212850
xor ecx, 0x39d7da85
and eax, ecx
cmp eax, 0x8ad8b1c6
ja 0x14002325a
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x1401c91a0]
xor eax, 0x16e37da3
mov edx, dword [0x1401c91a4]
xor edx, 0x3fc169
and eax, edx
mov edx, 0x1b3efaa4
xor edx, 0x135d3ca7
add eax, edx
mov r9d, 0xffffffff
xor r9d, 0xc157917a
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
xor edx, 0xffffffff
imul edx, r8d
mov r8d, eax
and r8d, 0xc157917a
or eax, 0xc157917a
imul eax, r8d
add eax, edx
mov edx, 0x6d39dffd
xor edx, 0x739a658f
and eax, edx
mov dword [rsp + 0x24], eax
mov eax, 0x1b76b69b
xor eax, 0xb700702e
mov dword [rsp + 0x20], eax
movabs rdx, 0xab98968425be000c
movabs rax, 0xab98968425be000c
xor rdx, rax
call fcn.1400227a0
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
call fcn.140022ac0
mov ecx, dword [rsp + 0x20]
mov eax, dword [rsp + 0x24]
cmp eax, ecx
jae 0x14002325a
add rsp, 0x38
ret
jmp 0x129e0b5a5