Function at 0x1400311c0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rcx
mov rdx, qword [rcx]
mov rcx, rdx
and rcx, 0xffffffffffffffff
shl rcx, 1
movabs r8, 0x7b9b1ad67ce44be3
movabs rax, 0x8464e529831bb41c
xor r8, rax
mov rax, rdx
xor rax, r8
add rax, rcx
mov qword [rsp + 0x50], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl dl
cmp rax, 0xffffffffffffffff
setg cl
xor dl, 0xff
mov al, cl
xor al, dl
and al, cl
test al, 1
jne 0x140031243
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
add rcx, 8
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
jmp 0x14003124d
call fcn.140007e9d
jmp 0x140031631
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x28], rax
cmp rax, rcx
jl 0x140031526
mov rax, qword [rsp + 0x28]
cmp rax, 0
jl 0x140031368
mov eax, dword [0x1402518c8]
xor eax, 0xdb7e737d
mov ecx, dword [0x1402518cc]
xor ecx, 0xbd21dac5
xor eax, ecx
sub eax, 0xfebcb581
sub eax, 0x60caac6d
mov ecx, 0x5ae3a944
xor ecx, 0xa45f1cc5
add eax, ecx
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x49e21979
add eax, ecx
mov ecx, 0x804ddc09
xor ecx, 0xcd35ae8c
add eax, ecx
mov ecx, 0x6fa6aec0
xor ecx, 0xe8bdb1e5
cmp eax, ecx
je 0x140031698
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x48]
mov eax, dword [0x1402518d0]
mov r9d, dword [0x1402518d4]
mov r8d, 0x6a289f8e
xor r8d, 0x6a289f8e
sub r8d, r9d
add eax, r8d
mov r8d, eax
and r8d, 0x60905d95
mov r9d, 0xd79199ac
xor r9d, 0x286e6653
xor r8d, r9d
mov r9d, 0x7ea6cd4b
xor r9d, 0x1e3690de
add eax, r9d
add eax, 1
add eax, r8d
mov r8d, 0x50178d8d
xor r8d, 0x4d44beb3
and eax, r8d
add eax, 0xadf5572b
cmp rcx, qword [rdx]
setl cl
mov byte [rsp + 0x27], cl
cmp eax, 0x5e179581
jbe 0x140031698
mov al, byte [rsp + 0x27]
test al, 1
jne 0x140031448
jmp 0x140031368
mov eax, dword [0x1402518d8]
mov r8d, dword [0x1402518dc]
xor r8d, 0xca3e22c9
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov edx, 0x31dc317b
xor edx, 0x3d8d3465
mov ecx, 0xd0b5025
xor ecx, 0xf2f4afda
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xc51051e
add eax, edx
sub eax, ecx
mov ecx, 0xb1f62699
xor ecx, 0x51e44279
sub eax, ecx
xor ecx, ecx
sub ecx, 0x43310de2
sub eax, ecx
cmp eax, 0xa2149a74
ja 0x1400316a1
mov ecx, dword [0x1402518e0]
xor ecx, dword [0x1402518e4]
add ecx, 0xd0476985
mov edx, 0x825fe968
xor edx, 0xf71d5729
mov eax, 0xc7773470
xor eax, 0x3888cb8f
xor edx, eax
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0xb9dfe7a2
xor ecx, 0x2c40dad8
or eax, ecx
mov dword [rsp + 0x20], eax
mov rcx, rdx
call fcn.140013507
mov eax, dword [rsp + 0x20]
cmp eax, 0x800c10be
je 0x1400316a1
jmp 0x140031631
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x18
add rcx, rax
call fcn.140031175
mov rcx, qword [rsp + 0x28]
xor eax, eax
mov edx, eax
sub rdx, rcx
xor eax, eax
sub rax, 0xffffffffffffffff
add rdx, rax
movabs rax, 0xe1f687f9cbaaca62
movabs r8, 0xe1f687f9cbaaca62
xor rax, r8
sub rax, rdx
mov rdx, rax
xor rdx, rcx
movabs r8, 0x66cbff57c23ba16f
movabs r9, 0x993400a83dc45e90
xor r8, r9
xor rdx, r8
mov r8, rcx
and r8, rdx
shl r8, 1
sub r8, rcx
mov rdx, rax
sub rdx, r8
movabs r8, 0xf3db39d9982e9e71
movabs r9, 0xf3db39d9982e9e71
xor r8, r9
cmp rdx, r8
setl r8b
cmp rcx, 0
setne dl
mov cl, dl
and cl, r8b
xor cl, 0xff
and dl, r8b
xor dl, 0xff
mov r8b, 1
xor r8b, 0
xor cl, r8b
xor dl, 0xff
or cl, dl
test cl, 1
mov qword [rsp + 0x38], rax
jne 0x14003151c
jmp 0x14003124d
call fcn.140007e9d
jmp 0x140031631
mov eax, dword [0x1402518e8]
mov ecx, 0x46017c8b
xor ecx, 0xc561751f
xor eax, ecx
or eax, dword [0x1402518ec]
mov r8d, 0x2572830a
xor r8d, 0xecc78e73
mov ecx, 0xd4148d56
xor ecx, 0x2beb72a9
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0xa9c96e02
xor r8d, 0x563691fd
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xc9b50d79
or eax, 0xc9b50d79
imul eax, edx
add eax, ecx
imul eax, eax, 0xe0cb35de
imul eax, eax, 0xfdd2e11a
cmp eax, 0x2b062328
je 0x1400316aa
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov eax, dword [0x1402518f0]
mov r8d, dword [0x1402518f4]
mov r9d, 0xd3c944c8
xor r9d, 0x1d417012
xor r8d, r9d
xor eax, r8d
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x26c279f7
mov r8d, 0xd1a7e8d8
xor r8d, 0x6cc5969d
mov r10d, 0xfaadc094
xor r10d, 0x5523f6b
xor r8d, r10d
or eax, r9d
or r8d, 0xbd627e45
mov r9d, 0x6ca99636
xor r9d, 0x935669c9
xor eax, r9d
and eax, r8d
and eax, 0x6b9b6be4
xor eax, 0xe62f24f4
mov qword [rcx], rdx
cmp eax, 0x21fa9f15
je 0x1400315a0
jmp 0x140031631
mov eax, dword [0x1402518f8]
xor eax, dword [0x1402518fc]
and eax, 0xd98438ab
mov ecx, 0x4ba76a35
xor ecx, 0x28b274c8
and eax, ecx
add eax, 0xc09d02c2
cmp eax, 0xd413f610
jae 0x1400316b3
mov eax, dword [0x140251900]
xor edx, edx
div dword [0x140251904]
xor eax, 0xa295a5e8
xor eax, 0x176e5774
mov ecx, 0xf77787d7
xor edx, edx
div ecx
mov ecx, 0x558afcc9
xor ecx, 0x3699a3d6
cmp eax, ecx
ja 0x14003165f
add rsp, 0x58
ret
invalid
invalid
invalid
or ah, byte [rdi + rdi*2 - 0x5c16ea]
invalid