Function at 0x140217020
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x80], rcx
cmp qword [rcx], 0
jle 0x14021745b
mov rax, qword [rsp + 0x80]
add rax, 8
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x68], rax
mov ecx, dword [0x14027ee90]
mov edx, dword [0x14027ee94]
mov eax, ecx
or eax, eax
mov r8d, 0xfdbca51d
xor r8d, 0x2435ae2
xor eax, r8d
mov r8d, edx
or r8d, r8d
xor r8d, 0xffffffff
mov r9d, 0x1e21fb6c
xor r9d, 0xe1de0493
xor eax, r9d
xor r8d, 0xffffffff
and eax, r8d
or ecx, edx
mov edx, 0xa55cb5bc
xor edx, 0x5aa34a43
xor ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xe8dc2b9
xor ecx, 0x322eb34f
xor eax, ecx
mov ecx, 0x5cee090d
xor edx, edx
div ecx
mov ecx, 0xd56abd92
xor edx, edx
div ecx
mov ecx, 0xf1239a75
xor ecx, 0x47fb5ba4
cmp eax, ecx
je 0x140217520
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
mov r8d, dword [0x14027ee98]
mov r9d, dword [0x14027ee9c]
mov eax, r8d
add eax, 1
xor r8d, 0xffffffff
or r8d, r9d
add r8d, eax
xor eax, eax
sub eax, r8d
xor r8d, r8d
sub r8d, 0x2f9adc8d
add eax, r8d
mov r8d, 0xd7cc932d
xor r8d, 0xd7cc932d
sub r8d, eax
xor r8d, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x2700ab6e
mov eax, 0xffffffff
xor eax, 0x30d023b
or r8d, r9d
or eax, 0x30d023b
xor r8d, 0xffffffff
and r8d, eax
mov eax, r8d
and eax, eax
xor eax, 0xffffffff
and eax, 0x190bbbff
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x190bbbff
mov r10d, 0xffffffff
xor r10d, 0x190bbbff
or r9d, r10d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
or r8d, r9d
and eax, r8d
xor eax, 0xffffffff
mov rcx, qword [rcx]
mov rcx, qword [rcx + rdx*8 + 8]
mov qword [rsp + 0x58], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x67], cl
cmp eax, 0x7349067d
jae 0x140217520
mov al, byte [rsp + 0x67]
test al, 1
jne 0x140217415
jmp 0x1402171cb
mov eax, dword [0x14027eea0]
xor eax, 0x6563c423
mov r8d, dword [0x14027eea4]
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 ecx, 0x34c064f1
xor edx, edx
div ecx
mov ecx, 0x17ce77e1
xor edx, edx
div ecx
imul eax, eax, 0x426fddb2
mov ecx, 0xd8225315
xor ecx, 0x2b463fb4
cmp eax, ecx
jae 0x140217529
mov rcx, qword [rsp + 0x58]
mov eax, dword [0x14027eea8]
or eax, dword [0x14027eeac]
mov r8d, 0xf5e69589
xor edx, edx
div r8d
mov edx, eax
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
mov edx, 0x6a4f5fb4
and edx, 0x6a4f5fb4
mov r8d, 0x6e016514
xor r8d, 0x91fe9aeb
xor edx, r8d
and eax, edx
mov edx, 0x2b871ed8
xor edx, 0xd478e127
xor eax, edx
mov edx, 0x4015fcb8
xor edx, 0xeb6cd5cb
xor eax, edx
mov rdx, rcx
add rdx, 0xfffffffffffffff0
mov qword [rsp + 0x40], rdx
mov rcx, qword [rcx - 0x10]
mov qword [rsp + 0x48], rcx
movabs rdx, 0xf13a5db1998f7520
movabs r8, 0xf13a5db1998f7530
xor rdx, r8
cmp rcx, rdx
setb cl
mov byte [rsp + 0x57], cl
cmp eax, 0x92f1dde9
jb 0x14021722e
mov al, byte [rsp + 0x57]
test al, 1
jne 0x140217406
jmp 0x1402172df
mov rdx, qword [rsp + 0x48]
movabs rcx, 0xbe7c57da03620ac
mov rax, rdx
add rax, rcx
add rax, 0xfffffffffffffff0
movabs rcx, 0xbe7c57da03620ac
sub rax, rcx
mov qword [rsp + 0x38], rax
mov rcx, rax
and rcx, rcx
movabs r8, 0xb9a7cc2b2e12fa06
movabs r9, 0x465833d4d1ed05f9
xor r8, r9
xor rcx, r8
movabs r8, 0x3ff98a4b530e5010
movabs r9, 0xc00675b4acf1afef
xor r8, r9
xor rcx, r8
mov r8, rdx
xor r8, 0xffffffffffffffff
or rcx, r8
mov r8, rdx
xor r8, 0xffffffffffffffff
movabs r9, 0x823936ef90fa6735
movabs r10, 0x7dc6c9106f0598ca
xor r9, r10
xor rdx, r9
or r8, rdx
mov rdx, rax
xor rdx, 0xffffffffffffffff
movabs r9, 0x4400733c570e7c26
movabs r10, 0xbbff8cc3a8f183d9
xor r9, r10
xor r8, r9
or rdx, r8
movabs r8, 0xae4b2806c3169a4e
movabs r9, 0x51b4d7f93ce965b1
xor r8, r9
xor rcx, r8
movabs r8, 0x7cdce839c85c21f3
movabs r9, 0x832317c637a3de0c
xor r8, r9
xor rdx, r8
or rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x1402173ea
jmp 0x1402173f4
call fcn.14000f24b
jmp 0x140217415
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
mov qword [rax], rcx
jmp 0x140217415
mov rcx, qword [rsp + 0x58]
mov edx, 4
call fcn.14001d294
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x68]
movabs rdx, 0xa3cdb5190accbd1f
add rax, rdx
add rax, 1
movabs rdx, 0x92757cbadffadd89
movabs r8, 0x31b8c9a3d5366096
xor rdx, r8
sub rax, rdx
cmp rax, qword [rcx]
mov qword [rsp + 0x78], rax
jl 0x140217051
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 8]
mov qword [rsp + 0x30], rax
cmp rax, 0
je 0x140217518
mov eax, dword [0x14027eeb0]
xor eax, 0xab2051bb
mov ecx, dword [0x14027eeb4]
mov edx, 0x40ceda71
xor edx, 0xba252ea2
xor ecx, edx
or eax, ecx
add eax, 0x8563505
mov ecx, 0xec31790e
xor edx, edx
div ecx
and eax, 0xfe00c692
mov ecx, 0xa807379a
xor ecx, 0x26a55f75
cmp eax, ecx
ja 0x140217532
invalid
mov rcx, qword [rsp + 0x30]
mov eax, dword [0x14027eeb8]
xor eax, 0x27e223e8
xor edx, edx
div dword [0x14027eebc]
mov r8d, 0xe5148e16
xor edx, edx
div r8d
add eax, 0xb32f599f
mov r8d, 0xdb2cc23
xor r8d, 0xa2fb88c8
xor edx, edx
div r8d
mov dword [rsp + 0x2c], eax
mov edx, 8
call fcn.14001d203
mov eax, dword [rsp + 0x2c]
cmp eax, 0xc92a42a3
je 0x1402174bc
jmp 0x140217518
add rsp, 0x88
ret
je 0x1402174ab
sub dword [rbx - 0x44317], esi
invalid
in al, dx
add al, 0xd3
jmp 0x14021722e
ja 0x140217513
invalid