Function at 0x1400312d0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x70], rcx
add rcx, 8
mov qword [rsp + 0x78], rcx
xor eax, eax
mov qword [rsp + 0x80], rax
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x60], rax
mov rcx, qword [rcx]
mov rdx, qword [rdx]
mov qword [rsp + 0x68], rdx
cmp rax, rcx
jge 0x140031851
mov ecx, dword [0x140217948]
xor ecx, 0xf759af4a
mov eax, dword [0x14021794c]
xor eax, 0xfd17e2e4
add ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x767dfe19
mov edx, 0xffffffff
xor edx, 0x767dfe19
and ecx, edx
sub ecx, eax
mov eax, 0x3c18b5de
xor eax, 0xc3e74a21
mov edx, ecx
xor edx, eax
mov eax, 0x43d5b16b
xor eax, 0xfa9478f6
and eax, edx
mov edx, 0x55527472
xor edx, 0xec13bdef
mov r8d, 0x588fa426
xor r8d, 0xa7705bd9
xor edx, r8d
and ecx, edx
or eax, ecx
mov edx, 0x76582b16
xor edx, 0x76582b17
mov ecx, eax
add ecx, edx
xor eax, 0xffffffff
mov edx, 0x1ddced7
xor edx, 0xdbaac07c
or eax, edx
add eax, ecx
cmp eax, 0x701d96bb
je 0x1400318b1
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov eax, dword [str.SW_C_]
xor eax, dword [0x140217954]
mov ecx, 0xf0dc1728
xor ecx, 0x11c5fe70
sub eax, ecx
mov r10d, 0xffffffff
xor r10d, 0x76e7dcec
mov r9d, eax
and r9d, r10d
mov ecx, eax
or ecx, r10d
xor ecx, 0xffffffff
imul ecx, r9d
mov r10d, 0x677383d5
xor r10d, 0x11945f39
mov r9d, eax
and r9d, r10d
mov r10d, 0x6870afd
xor r10d, 0x7060d611
or eax, r10d
imul eax, r9d
add eax, ecx
imul eax, eax, 0xa1063524
mov ecx, 0x57896d9f
xor ecx, 0xf1601ad6
add rdx, 8
imul r8, r8, 0x28
add rdx, r8
add rdx, 0x10
mov rdx, qword [rdx]
mov qword [rsp + 0x50], rdx
cmp rdx, 0
sete dl
mov byte [rsp + 0x5f], dl
cmp eax, ecx
je 0x1400318b1
mov rax, qword [rsp + 0x68]
mov cl, byte [rsp + 0x5f]
test cl, 1
mov qword [rsp + 0x48], rax
jne 0x1400314ff
jmp 0x140031473
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx]
or rcx, rcx
movabs rdx, 0xb3bbcbff81f07fc2
movabs r8, 0x4c4434007e0f803d
xor rdx, r8
xor rcx, rdx
movabs rdx, 0x4000000000000000
movabs r8, 0x4000000000000000
or rdx, r8
movabs r8, 0x5fd1c5ee57ce618
movabs r9, 0xfa02e3a11a8319e7
xor r8, r9
xor rdx, r8
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x48], rax
jne 0x1400314ff
mov rcx, qword [rsp + 0x50]
call fcn.1400108f0
mov rax, qword [rsp + 0x78]
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x40], rax
mov eax, dword [0x140217958]
mov edx, dword [0x14021795c]
xor eax, 0xffffffff
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0xf8045028
or eax, edx
or ecx, 0xf8045028
mov edx, 0x25b05ea4
xor edx, 0xda4fa15b
xor eax, edx
and eax, ecx
mov ecx, 0x24153748
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, eax
mov edx, 0xffd40b3d
xor edx, 0x2bf4c2
xor eax, edx
and eax, 0x2e1d32b7
mov edx, 0xcbabe46b
xor edx, 0x34541b94
xor eax, edx
mov edx, 0xffffffff
xor edx, 0x2e1d32b7
mov r8d, 0x7ca05239
xor r8d, 0x52bd608e
mov r9d, 0x6d2580a0
xor r9d, 0x92da7f5f
xor r8d, r9d
or edx, r8d
xor ecx, 0xffffffff
mov r8d, 0xc0b63ce5
xor r8d, 0x3f49c31a
xor edx, r8d
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov edx, 0x711f0020
xor edx, 0x65099992
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, 0x141699b2
and eax, ecx
mov ecx, 0xb49739a6
xor ecx, 0xe9cb187f
cmp eax, ecx
jae 0x1400318ba
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov eax, dword [0x140217960]
mov r9d, dword [0x140217964]
mov r10d, 0x6609fa5a
xor r10d, 0x99f605a5
mov r8d, eax
xor r8d, r10d
mov r11d, 0x165d6925
xor r11d, 0xe9a296da
mov r10d, eax
xor r10d, r11d
or r8d, r10d
and r8d, r9d
mov r10d, 0xfa2df6e5
xor r10d, 0x5d2091a
xor r8d, r10d
and r9d, r9d
xor r9d, 0xffffffff
xor eax, 0xffffffff
xor r9d, 0xffffffff
or eax, r9d
and r8d, eax
xor r8d, 0xffffffff
mov eax, 0x6aa1b532
xor eax, 0x4821765b
imul r8d, eax
and r8d, 0x17c593fd
mov r9d, 0x89b817f
xor r9d, 0xf7647e80
mov eax, r8d
xor eax, r9d
mov r9d, r8d
xor r9d, 0xffffffff
or eax, r9d
mov r9d, 0x844ca188
xor r9d, 0x7bb35e77
xor eax, r9d
mov r9d, 0xffffffff
xor r9d, 0x5146a1c4
or eax, r9d
mov r9d, 0xb40edd61
xor r9d, 0xe5487ca5
mov r10d, 0xc881072
xor r10d, 0xf377ef8d
xor r9d, r10d
mov r10d, 0xffffffff
xor r10d, 0x5146a1c4
or r9d, r10d
xor r8d, 0xffffffff
mov r10d, 0xc9f5f9fd
xor r10d, 0x360a0602
xor r9d, r10d
or r8d, r9d
and eax, r8d
mov r8d, 0x317a0124
xor r8d, 0xce85fedb
xor eax, r8d
add rcx, 8
imul rdx, rdx, 0x28
add rcx, rdx
add rcx, 0x20
mov rcx, qword [rcx]
mov qword [rsp + 0x30], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x3f], cl
cmp eax, 0xd00e625b
ja 0x1400315dc
mov al, byte [rsp + 0x3f]
test al, 1
jne 0x140031814
jmp 0x14003172e
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
movabs rcx, 0xe7c08eebfecc9584
movabs rdx, 0xa7c08eebfecc9584
xor rcx, rdx
and rax, rcx
cmp rax, 0
jne 0x140031814
mov ecx, dword [0x140217968]
mov edx, dword [0x14021796c]
xor edx, 0xb6129124
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
mov ecx, 0x9307ded4
xor ecx, 0x19d63931
and ecx, eax
mov edx, 0xfd2bf040
xor edx, 0x2d40fbf
xor ecx, edx
add eax, 0x8ad1e7e5
add eax, 1
add eax, ecx
mov ecx, 0xcba4def
xor ecx, 0x5ae47b5a
xor edx, edx
div ecx
or eax, 0xde737c74
mov ecx, 0x5347d45a
xor ecx, 0xf8271836
cmp eax, ecx
jbe 0x1400318c3
mov rcx, qword [rsp + 0x30]
mov edx, dword [0x140217970]
mov r8d, dword [0x140217974]
mov eax, edx
and eax, r8d
or edx, r8d
add eax, edx
xor eax, 0xfc3cc127
xor edx, edx
sub edx, 0xc3141f40
add eax, edx
mov edx, 0xcbc72e46
xor edx, 0x24426bb7
add eax, edx
mov dword [rsp + 0x2c], eax
call fcn.1400108f0
mov eax, dword [rsp + 0x2c]
cmp eax, 0xfe773ca4
je 0x1400317bf
jmp 0x140031814
mov rax, qword [rsp + 0x60]
movabs rcx, 0x72a4a86d9b3b2f94
movabs rdx, 0xb55aa5e0b1f92729
xor rcx, rdx
sub rax, rcx
add rax, 1
movabs rcx, 0xc7fe0d8d2ac208bd
add rax, rcx
mov qword [rsp + 0x80], rax
jmp 0x1400312ef
mov rax, qword [rsp + 0x68]
cmp rax, 0
je 0x1400318a8
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
movabs rdx, 0x4000000000000000
mov rax, rcx
and rax, rdx
xor rax, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
and rcx, rdx
xor rcx, 0xffffffffffffffff
and rax, rcx
xor rax, 0xffffffffffffffff
cmp rax, 0
jne 0x1400318a8
mov rcx, qword [rsp + 0x68]
call fcn.1400108f0
nop
add rsp, 0x88
ret
setge byte [rax]
mov ecx, ebp
idiv edx
invalid
movsb byte [rdi], byte es:[rsi]
mov dl, 0x9d
jmp 0x1400315dc
scasd eax, dword [rdi]
xchg esi, eax
mov edx, 0xfef3e9c5
invalid