Function at 0x140240e10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
sub rsp, 0x108
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x78], rcx
mov qword [rbp + 0x80], rcx
mov eax, dword [0x1402b6f38]
imul eax, dword [0x1402b6f3c]
mov ecx, 0xb2e0fae7
xor ecx, 0xf7bcdb65
sub eax, ecx
mov ecx, eax
and ecx, 0xf28de9e4
mov edx, 0x2266ae84
xor edx, 0xdd99517b
xor ecx, edx
mov edx, 0x2db6d72
xor edx, 0xf0568496
add eax, edx
add eax, 1
add eax, ecx
mov ecx, eax
and ecx, 0x3a46ce22
shl ecx, 1
add eax, 0x3a46ce22
sub eax, ecx
mov ecx, 0x96ac32c
xor ecx, 0xfae22164
cmp eax, ecx
ja 0x140241793
mov eax, dword [0x1402b6f40]
mov ecx, dword [0x1402b6f44]
xor ecx, 0x2232010a
and eax, ecx
or eax, 0xc45fe34
add eax, 0x6961fda5
or eax, 0xd3185529
mov dword [rbp + 0x74], eax
mov eax, 0x10
mov qword [rbp + 0x40], rax
call fcn.1402a7dd0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x58], rax
mov eax, 0x40
call fcn.1402a7dd0
sub rsp, rax
mov rax, qword [rbp + 0x40]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.1402a7dd0
sub rsp, rax
mov rax, qword [rbp + 0x40]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.1402a7dd0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x50], rax
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000eaf8
mov rcx, qword [rbp + 0x78]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x58]
mov qword [rbp + 0x60], rdx
mov qword [rcx], 0
mov qword [rcx + 8], 0
mov qword [rax], 0
mov rcx, rax
add rcx, 8
mov qword [rbp + 0x68], rcx
mov qword [rax + 8], 0
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000eaf8
add rsp, 0x20
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000eaf8
add rsp, 0x20
mov eax, dword [rbp + 0x74]
cmp eax, 0xb8488997
je 0x140241793
xor eax, eax
mov qword [rbp + 0x30], rax
jmp 0x140240f9d
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x38]
xorps xmm0, xmm0
movaps xmmword [rcx + rax], xmm0
add rax, 0x10
cmp rax, 0x40
mov qword [rbp + 0x30], rax
jne 0x140240f9d
mov rax, qword [rbp + 0x60]
add rax, 0x60
mov qword [rbp + 0x20], rax
mov eax, 0x80000000
cpuid
mov dword [rbp + 0x2c], eax
mov ecx, 0x6f0db3
xor ecx, 0xff90f24c
cmp eax, ecx
jg 0x1402413b7
mov ecx, dword [0x1402b6f48]
mov eax, dword [str._Y]
xor eax, 0xee2c85da
and ecx, eax
add ecx, 0x120a3ed1
mov eax, ecx
and eax, 0x121569eb
mov edx, 0x3c40ff7f
xor edx, 0xc3bf0080
xor eax, edx
and ecx, 0x121569eb
xor ecx, 0xffffffff
xor eax, 0xffffffff
mov edx, 0x4b095770
xor edx, 0xb4f6a88f
xor ecx, edx
or eax, ecx
add eax, 0x2a0670d2
sub eax, 0x65baeaa4
sub eax, 0x2a0670d2
mov ecx, 0x78403679
xor ecx, 0x85cb00d2
cmp eax, ecx
je 0x14024179c
mov rcx, qword [rbp + 0x38]
mov edx, dword [0x1402b6f50]
xor edx, dword [0x1402b6f54]
or edx, 0x7f15ca2e
mov r8d, 0xc1aed957
xor r8d, 0x3e5126a8
mov eax, edx
xor eax, r8d
mov r8d, 0x44c99d2e
xor r8d, 0xceb8ab0d
and r8d, eax
mov r9d, 0xffffffff
xor r9d, 0x8a713623
mov eax, edx
and eax, r9d
imul eax, r8d
mov r9d, 0xbea978de
xor r9d, 0x34d84efd
mov r8d, edx
and r8d, r9d
or edx, 0x8a713623
imul edx, r8d
add edx, eax
mov r8d, 0x4561c5e
xor r8d, 0x44dfaf62
mov eax, edx
and eax, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x4089b33c
or edx, r8d
and eax, edx
xor eax, 0xffffffff
mov rdx, rcx
add rdx, 0x20
mov qword [rbp + 0x10], rdx
movabs rdx, 0x9ef19677eb3aec23
movabs r8, 0x9ef19677eb3aec33
xor rdx, r8
add rcx, rdx
mov qword [rbp + 0x18], rcx
cmp eax, 0x650ae80b
ja 0x140241051
mov eax, 0x80000000
mov dword [rbp + 0xc], eax
jmp 0x14024112c
mov eax, dword [rbp + 0xc]
mov dword [rbp - 0x1c], eax
cpuid
mov r8d, eax
mov eax, dword [rbp - 0x1c]
mov dword [rbp - 0x18], r8d
mov r8d, ecx
mov ecx, dword [rbp - 0x18]
mov dword [rbp - 0x14], r8d
mov r8d, edx
mov edx, dword [rbp - 0x14]
movd xmm0, r8d
movd xmm1, edx
punpckldq xmm1, xmm0
movd xmm2, ebx
movd xmm0, ecx
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
movaps xmmword [rbp - 0x10], xmm0
sub eax, 0x80000002
je 0x140241275
jmp 0x14024117f
mov eax, dword [rbp - 0x1c]
sub eax, 0x80000003
je 0x1402411b6
jmp 0x140241192
mov eax, dword [rbp - 0x1c]
sub eax, 0x80000004
jne 0x140241281
jmp 0x1402411a5
mov rax, qword [rbp + 0x10]
movaps xmm0, xmmword [rbp - 0x10]
movdqa xmmword [rax], xmm0
jmp 0x140241281
mov eax, dword [0x1402b6f58]
xor edx, edx
div dword [0x1402b6f5c]
mov ecx, eax
mov edx, 0xa979c694
xor edx, 0x599b4797
mov eax, ecx
and eax, edx
mov edx, 0xa97739d6
xor edx, 0x5995b8d5
xor ecx, edx
or eax, ecx
xor eax, 0xfb7b84ac
mov ecx, 0xba5ba68c
xor ecx, 0x5eaf4e7b
sub eax, ecx
mov ecx, 0x6cf4719
xor ecx, 0xa349e4e5
sub eax, ecx
mov ecx, 0x53070ed1
xor ecx, 0xb7f3e626
add eax, ecx
mov ecx, 0x8f57e8ee
xor ecx, 0x3396661c
cmp eax, ecx
je 0x1402417a5
mov rcx, qword [rbp + 0x18]
movaps xmm0, xmmword [rbp - 0x10]
mov eax, dword [0x1402b6f60]
mov r8d, dword [0x1402b6f64]
xor r8d, 0x7f1fab3f
xor edx, edx
div r8d
mov edx, 0x429daedd
xor edx, 0x1227961
add eax, edx
mov r8d, 0x992ef18
xor edx, edx
div r8d
xor eax, 0xc3976257
movdqa xmmword [rcx], xmm0
cmp eax, 0x61d14f18
jbe 0x140241223
jmp 0x140241281
mov rax, qword [rbp + 0x38]
movaps xmm0, xmmword [rbp - 0x10]
movdqa xmmword [rax], xmm0
mov eax, dword [0x1402b6f68]
mov edx, dword [0x1402b6f6c]
xor edx, 0xac0e0b7d
mov ecx, eax
or ecx, ecx
xor ecx, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
mov r10d, 0x4af5335c
xor r10d, 0xb50acca3
mov r9d, edx
xor r9d, r10d
and r8d, r9d
or ecx, r8d
xor ecx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov edx, 0x4bafc5ea
xor edx, 0xb4503a15
xor ecx, edx
xor eax, 0xffffffff
and ecx, eax
xor eax, eax
sub eax, 0xecbdb7a9
add ecx, eax
mov edx, 0xeb96a9ef
xor edx, 0x41a8dbd7
mov eax, ecx
and eax, edx
or ecx, 0xaa3e7238
add eax, ecx
and eax, 0x5571e447
mov ecx, 0xf8bdff76
xor ecx, 0x466004a1
cmp eax, ecx
ja 0x1402417ae
mov edx, dword [rbp + 0x2c]
mov ecx, dword [rbp - 0x1c]
mov eax, dword [0x1402b6f70]
mov r8d, 0x639a2f13
xor r8d, 0x157ee376
xor eax, r8d
and eax, dword [0x1402b6f74]
imul eax, eax, 0x55bd898c
add eax, 0xd218d20d
mov r10d, 0xca692ca3
xor r10d, 0xdecf2fee
mov r8d, 0x644eb65a
xor r8d, 0x9bb149a5
xor r10d, r8d
mov r9d, eax
and r9d, r10d
mov r8d, eax
or r8d, r10d
xor r8d, 0xffffffff
imul r8d, r9d
mov r9d, eax
and r9d, 0x14a6034d
or eax, 0x14a6034d
imul eax, r9d
add eax, r8d
xor r8d, r8d
sub r8d, 1
sub ecx, r8d
mov dword [rbp - 0x24], ecx
cmp ecx, edx
seta cl
mov byte [rbp - 0x1d], cl
cmp eax, 0x1380d44e
je 0x1402417ae
mov eax, dword [rbp - 0x24]
mov cl, byte [rbp - 0x1d]
test cl, 1
mov dword [rbp + 0xc], eax
jne 0x1402413b7
jmp 0x14024112c
mov r9, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x58]
mov rax, qword [0x1402c51e0]
mov qword [r9], rax
mov rax, qword [0x1402c51e8]
mov qword [r9 + 8], rax
mov r8d, 0x40
sub rsp, 0x20
call fcn.1400647b0
mov rax, qword [rbp + 0x20]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xcd
xor cl, 0xcd
cmp al, cl
jne 0x140241653
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000eaf8
add rsp, 0x20
mov rcx, rax
add rcx, 0x60
mov qword [rbp - 0x30], rcx
cmp byte [rax + 0x60], 0
jne 0x14024159b
mov rax, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x58]
mov rdx, qword [rcx]
mov qword [rbp - 0x40], rdx
mov rcx, qword [rax]
add rcx, 8
lea rax, [0x1402c5209]
cmp rdx, 0
cmove rcx, rax
sub rsp, 0x20
call fcn.1400de2c0
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x30]
mov dword [rbp - 0x34], ecx
cmp byte [rax], 0
jne 0x14024159b
mov eax, dword [0x1402b6f78]
mov ecx, dword [0x1402b6f7c]
xor ecx, 0xe3a388bb
and eax, ecx
or eax, 0xd190f248
mov ecx, 0xe63c4b40
xor ecx, 0xdc68562e
and eax, ecx
mov ecx, 0xd00262e8
xor ecx, 0xce60de88
add eax, ecx
mov ecx, 0x49b1a1fa
xor ecx, 0xdcf7a847
cmp eax, ecx
jae 0x1402417b7
mov rcx, qword [rbp - 0x40]
mov eax, dword [0x1402b6f80]
mov r8d, dword [0x1402b6f84]
xor r8d, 0xcf0b2474
mov edx, r8d
and edx, eax
xor edx, 0xffffffff
add eax, r8d
mov r8d, 0x62b17c94
xor r8d, 0x62b17c95
add eax, r8d
add eax, edx
or eax, 0xd0d78cf5
mov r8d, 0x93b2be0
xor edx, edx
div r8d
mov edx, dword [rbp - 0x34]
mov r8d, 0xcb98ab34
xor r8d, 0x4523a2eb
xor eax, r8d
movsxd rdx, edx
mov qword [rbp - 0x50], rdx
cmp rcx, rdx
setg cl
mov byte [rbp - 0x41], cl
cmp eax, 0x91ce4185
je 0x1402417b7
mov al, byte [rbp - 0x41]
test al, 1
jne 0x140241536
jmp 0x14024159b
mov eax, dword [rbp - 0x34]
cmp eax, 0
jge 0x140241586
mov rcx, qword [rbp - 0x50]
movabs rdx, 0xa096fbe6c1cdb40f
movabs rax, 0xa096fbe6c1cdb40f
xor rdx, rax
movabs r8, 0x8309239345665935
movabs rax, 0xfcf6dc6cba99a6ca
xor r8, rax
sub rsp, 0x20
call fcn.140018506
add rsp, 0x20
jmp 0x14024159b
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp + 0x58]
sub rsp, 0x20
call fcn.140028330
add rsp, 0x20
mov rax, qword [rbp + 0x20]
cmp byte [rax], 0
jne 0x140241653
mov rdx, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp + 0x58]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
mov r9d, 1
lea rax, [0x1402c5220]
sub rsp, 0x30
mov r8d, r9d
mov qword [rsp + 0x20], rax
call fcn.14005acc0
mov rax, qword [rbp + 0x20]
add rsp, 0x30
cmp byte [rax], 0
jne 0x140241653
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov qword [rbp - 0x58], rax
cmp rax, 0
je 0x140241782
mov rax, qword [rbp - 0x58]
mov rdx, qword [rax]
mov r8, 0xffffffffffffffff
movabs rcx, 0x4000000000000000
xor r8, rcx
mov rcx, rdx
xor rcx, r8
and rcx, rdx
movabs rdx, 0xbb7252b9b962090b
movabs r8, 0xbb7252b9b962090b
xor rdx, r8
cmp rcx, rdx
mov qword [rbp - 0x60], rax
je 0x140241687
jmp 0x140241782
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov qword [rbp - 0x68], rax
cmp rax, 0
je 0x140241782
mov rax, qword [rbp - 0x68]
movabs rcx, 0x4000000000000000
and rcx, qword [rax]
cmp rcx, 0
mov qword [rbp - 0x60], rax
jne 0x140241782
mov rax, qword [rbp - 0x60]
mov qword [rbp - 0x70], rax
mov eax, dword [0x1402b6f88]
mov ecx, dword [0x1402b6f8c]
add eax, 0xb598a48c
add eax, ecx
sub eax, 0xb598a48c
mov ecx, 0xd4f716c5
xor ecx, 0x1c1cec06
and eax, ecx
mov ecx, 0xa8b88def
xor edx, edx
div ecx
mov ecx, 0xebc511cd
xor ecx, 0xa32634c8
or eax, ecx
cmp eax, 0x2acb2ff3
jbe 0x1402417c0
mov rcx, qword [rbp - 0x70]
mov edx, dword [0x1402b6f90]
or edx, dword [0x1402b6f94]
mov eax, 0xdebe15ea
xor eax, 0x3faf5e30
xor edx, eax
mov eax, edx
xor eax, 0xffffffff
mov r8d, 0x2a1fdb5a
xor r8d, 0xd5e024a5
xor edx, r8d
or eax, edx
mov edx, 0x131dc05e
and edx, 0x131dc05e
xor edx, 0xffffffff
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
mov r9d, 0xffffffff
xor r9d, 0x55ac6d56
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
mov r9d, 0xff043b1c
xor r9d, 0xfbc4e3
xor edx, r9d
imul edx, r8d
mov r8d, eax
and r8d, 0x55ac6d56
or eax, 0x55ac6d56
imul eax, r8d
add eax, edx
mov dword [rbp - 0x74], eax
sub rsp, 0x20
call fcn.14001a7c0
mov eax, dword [rbp - 0x74]
add rsp, 0x20
cmp eax, 0xf6f0c928
jae 0x1402416d5
jmp 0x140241782
mov rax, qword [rbp + 0x80]
lea rsp, [rbp + 0x88]
pop rbx
pop rbp
ret
mov esp, 0xe9cb5332
div dh
invalid
invalid
adc ecx, 0x75e9a141
cli
invalid
test byte [rdi + rdx - 0x4aa167c], ch
invalid
out 0xbb, al
ret 0xe987
invalid