Function at 0x140227cd0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xb0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], r8
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rcx
mov ecx, dword [0x14025f070]
mov r8d, dword [0x14025f074]
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 r8d, 0xffffffff
xor r8d, 0xc36f689
mov edx, ecx
and edx, r8d
mov eax, ecx
or eax, r8d
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, 0xc36f689
mov r8d, 0xd8a4e07f
xor r8d, 0xd49216f6
or ecx, r8d
imul ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0x2ecfe4c9
mov edx, 0xffffffff
xor edx, 0x2ecfe4c9
and ecx, edx
mov edx, 0xa882a170
xor edx, 0xa882a172
imul edx, ecx
sub edx, eax
mov eax, 0xac374d47
xor eax, 0x79dbd2e2
mov ecx, edx
xor ecx, eax
mov eax, 0x7ca70e35
xor eax, 0xa94b9190
mov r8d, 0x8bf0eff2
xor r8d, 0x740f100d
xor eax, r8d
and edx, eax
mov eax, 0x39fddc82
xor eax, 0x39fddc80
imul eax, edx
sub eax, ecx
mov ecx, 0xcb3d7e71
xor ecx, 0x12f99e47
cmp eax, ecx
jb 0x140228490
mov eax, dword [0x14025f078]
mov ecx, dword [0x14025f07c]
xor ecx, 0x3c118718
imul eax, ecx
mov ecx, eax
xor ecx, 0x808cea74
xor eax, 0xbe87780
and eax, ecx
mov ecx, 0x914bbfef
imul rax, rcx
shr rax, 0x3f
mov dword [rbp - 0xc], eax
mov eax, 0x10
mov qword [rbp - 0x28], rax
call fcn.14024f5c0
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp - 0x20], rcx
call fcn.14024f5c0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x18], rax
sub rsp, 0x20
call fcn.140230011
mov rdx, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp - 0xc]
add r8, 0x50
mov qword [rbp - 8], r8
movabs r8, 0x9bbdf08f63cd3d8e
movabs r9, 0x9bbdf08f63cd3d8e
xor r8, r9
mov qword [rdx], r8
mov r8, rdx
add r8, 8
mov qword [rbp], r8
mov qword [rdx + 8], 0
add rcx, 0xffffffff80000000
movabs rdx, 0x5589f69a40fccb2e
movabs r8, 0xaa76096540fccb2e
xor rdx, r8
cmp rcx, rdx
setb cl
mov byte [rbp + 0xf], cl
cmp eax, 0xf11b08fd
jae 0x140227dcd
mov al, byte [rbp + 0xf]
test al, 1
jne 0x140227ebe
jmp 0x140227ee1
mov rcx, qword [rbp + 0x10]
mov rdx, 0xffffffff80000000
mov r8d, 0x7fffffff
sub rsp, 0x20
call fcn.14000cee2
add rsp, 0x20
jmp 0x140228486
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp + 0x10]
mov dword [rax], ecx
mov ecx, 0xd48
sub rsp, 0x20
call fcn.140069e00
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 8]
mov qword [rbp - 0x30], rcx
cmp byte [rax], 0
jne 0x140228486
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp + 0x10]
cmp rcx, 0xffffffffffffffff
setg al
cmp rcx, rdx
setl dl
xor al, 0xff
xor ecx, ecx
xor cl, 1
xor dl, cl
mov cl, 1
xor cl, 1
mov r8b, 1
xor r8b, 0
xor cl, r8b
or al, dl
or cl, 0
xor al, 0xff
and al, cl
test al, 1
jne 0x140227f81
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp + 0x10]
mov rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor r8d, r8d
sub r8, 1
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.140013507
add rsp, 0x20
jmp 0x140228486
mov eax, dword [0x14025f080]
mov r8d, dword [0x14025f084]
xor r8d, 0x8952f367
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xc61d6b3a
xor edx, edx
div ecx
mov ecx, 0x4f61e422
xor edx, edx
div ecx
xor eax, 0x5486163
mov ecx, 0x325939f6
xor ecx, 0xe3eda570
cmp eax, ecx
ja 0x140228499
mov rcx, qword [rbp - 0x18]
mov r8, qword [rbp - 0x30]
mov eax, dword [0x14025f088]
xor eax, 0xa30af93e
and eax, dword [0x14025f08c]
add eax, 0xf7ac5
mov r9d, 0x6f8089a5
xor r9d, 0xb52e7b10
xor edx, edx
div r9d
mov rdx, qword [rbp + 0x18]
mov r9d, eax
mov rax, qword [rbp - 0x20]
or r9d, 0xf232b0b9
mov dword [rbp - 0x44], r9d
add rdx, r8
mov qword [rax + 8], rdx
mov edx, 0x10
sub rsp, 0x20
call fcn.1402284b0
add rsp, 0x20
mov ecx, 0x67f
sub rsp, 0x20
call fcn.140069e00
mov rcx, qword [rbp - 8]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x44]
mov qword [rbp - 0x40], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x31], cl
cmp eax, 0x4333436e
jb 0x140228499
mov al, byte [rbp - 0x31]
test al, 1
jne 0x140228086
jmp 0x140228486
mov rcx, qword [rbp - 0x40]
mov rax, rcx
and rax, 0xffffffff80000000
or rcx, 0xffffffff80000000
add rax, rcx
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x1402280f4
mov rcx, qword [rbp - 0x40]
movabs rdx, 0xdf19e8219279fc5c
movabs rax, 0x20e617de1279fc5c
xor rdx, rax
movabs r8, 0x17bebabfc49a80c2
movabs rax, 0x17bebabfbb657f3d
xor r8, rax
sub rsp, 0x20
call fcn.14000cee2
add rsp, 0x20
jmp 0x140228486
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x40]
mov r10d, edx
xor edx, edx
mov r9d, edx
sub rsp, 0x40
mov rdx, r9
mov r8, r9
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x28], r10d
mov qword [rsp + 0x30], rax
call fcn.1400af883
add rsp, 0x40
mov ecx, eax
mov rax, qword [rbp - 8]
mov dword [rbp - 0x48], ecx
mov al, byte [rax]
mov cl, 0xbd
xor cl, 0xbd
cmp al, cl
jne 0x140228486
mov eax, dword [rbp - 0x48]
cmp eax, 0
jne 0x1402281cf
mov ecx, 0x48
mov edx, 8
sub rsp, 0x20
call fcn.1400132f0
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x1402696a8]
mov qword [rcx], rax
lea rax, [0x140269194]
mov qword [rcx + 0x10], rax
mov rax, qword [0x1402691c0]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1402691c8]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x140269194]
lea r8, [0x1402691a8]
lea r9, [0x1402691b7]
sub rsp, 0x30
mov qword [rsp + 0x20], 0x51a20a18
call fcn.1400127b0
add rsp, 0x30
jmp 0x140228486
mov ecx, dword [0x14025f090]
sub ecx, dword [0x14025f094]
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xe88b0b3b
mov eax, 0xffffffff
xor eax, 0x95189bec
or ecx, edx
or eax, 0x95189bec
mov edx, 0x629cfb4b
xor edx, 0x9d6304b4
xor ecx, edx
and ecx, eax
mov edx, 0x24448652
xor edx, 0x13130e93
mov eax, ecx
and eax, edx
mov edx, 0x2d2de5ab
xor edx, 0x1a7a6d6a
or ecx, edx
add eax, ecx
and eax, 0xd7faa0f9
cmp eax, 0x92e3b56a
je 0x1402284a2
mov rcx, qword [rbp - 0x18]
mov eax, dword [0x14025f098]
xor eax, 0x84995eb1
xor edx, edx
div dword [0x14025f09c]
mov r9d, eax
mov eax, r9d
xor eax, 0xffffffff
and eax, 0xaf86490f
mov r8d, 0xffffffff
xor r8d, 0xaf86490f
and r9d, r8d
mov edx, 0x911a8a70
xor edx, 0xf8175a1
mov r10d, 0x807eda14
xor r10d, 0x7f8125eb
xor edx, r10d
mov r10d, 0x4e39aa43
xor r10d, 0xe1bfe34c
and edx, r10d
and r8d, 0x9e9bffd1
or eax, r9d
or edx, r8d
xor eax, edx
imul eax, eax, 0x1c01b0d8
mov edx, eax
and edx, 0xfc549e22
xor edx, 0xffffffff
mov r8d, 0x8b01b764
xor r8d, 0x77552946
add eax, r8d
mov r8d, 0xec799c4a
xor r8d, 0xec799c4b
add eax, r8d
add eax, edx
mov ecx, dword [rcx]
movsxd rdx, ecx
mov qword [rbp - 0x58], rdx
cmp ecx, 0
setl cl
mov byte [rbp - 0x49], cl
cmp eax, 0x366d58f7
je 0x140228237
mov al, byte [rbp - 0x49]
test al, 1
jne 0x140228306
jmp 0x14022832a
mov rcx, qword [rbp - 0x58]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000cee2
add rsp, 0x20
jmp 0x140228486
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rbp + 0x20]
sub rsp, 0x20
call fcn.140014c40
add rsp, 0x20
mov ecx, 0xcf6
sub rsp, 0x20
call fcn.140069e00
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 8]
mov qword [rbp - 0x60], rcx
cmp byte [rax], 0
jne 0x140228486
mov rax, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x18]
movsxd rcx, dword [rcx]
cmp rax, rcx
je 0x140228471
mov ecx, 0x1f1
sub rsp, 0x20
call fcn.140069e00
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp - 8]
mov qword [rbp - 0x68], rcx
cmp byte [rax], 0
jne 0x140228486
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rbp + 0x20]
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x70], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x1402283e2
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140013507
add rsp, 0x20
jmp 0x140228486
mov rax, qword [rbp - 0x18]
mov eax, dword [rax]
movsxd rcx, eax
mov qword [rbp - 0x78], rcx
mov ecx, 0xda93ed6a
xor ecx, 0xda93ed6a
cmp eax, ecx
jge 0x140228446
mov rcx, qword [rbp - 0x78]
movabs rdx, 0xe0823bdcafc32114
movabs rax, 0xe0823bdcafc32114
xor rdx, rax
movabs r8, 0x6a4963df7ba0617a
movabs rax, 0x15b69c20845f9e85
sahf
pop rdi
test byte [rax], ah
pushfq
mov dh, 0x15
xor r8, rax
sub rsp, 0x20
call fcn.14000cee2
add rsp, 0x20
jmp 0x140228486
mov r8, qword [rbp - 0x78]
mov rax, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rbp]
mov rcx, qword [rcx]
add rcx, 8
add rcx, rdx
mov rdx, qword [rax + 8]
sub rsp, 0x20
call fcn.1402285d0
add rsp, 0x20
mov rax, qword [rbp - 0x18]
mov rcx, qword [rax + 8]
sub rsp, 0x20
call fcn.1400b42e7
add rsp, 0x20
mov rax, qword [rbp + 0x28]
lea rsp, [rbp + 0x30]
pop rbp
ret
insd dword [rdi], dx
je 0x14022842a
invalid
invalid
xchg dword [rax + 5], eax
jmp 0x140228237