Function at 0x2020ff30
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov qword [rsp + 0x50], rdx
mov rsi, rcx
call fcn.20211330
mov rcx, qword [0x203e1c88]
mov edx, dword [0x203e1c78]
mov edi, 0x52e0
sub edi, eax
sub edx, edi
movsxd rax, edx
add rax, rcx
call qword [case.0x200b73a7.0]
mov ebx, eax
mov ebp, eax
mov r15, rbp
shl r15, 0x24
or r15, rbp
mov r12, rbp
shl r12, 0x1b
xor r12, rbp
movabs rax, 0xfc90f07e421e0fe2
xor rax, r12
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x58], rax
mov r14, qword [rsi + rax]
mov esi, ebx
xor esi, 0x7d4e5cf0
mov rcx, qword [0x203e1c90]
mov eax, dword [0x203e1c74]
mov dword [rsp + 0x20], edi
sub eax, edi
cdqe
add rax, rcx
mov rcx, r14
mov edx, esi
call qword [case.0x200b73a7.0]
mov dword [rsp + 0x24], ebx
xor ebx, 0xe9a402e9
cmp dword [0x203e1c24], ebx
movsxd rcx, dword [0x2030efa8]
mov qword [rsp + 0xa0], r12
mov dword [rsp + 0x80], esi
jne 0x202100de
movabs r8, 0x822cdc781baefcd
xor r8, r12
mov rdx, rbp
shl rdx, 0x1d
xor rdx, rbp
movabs r9, 0xf90e03beee451032
xor r9, rdx
add r9, r8
movabs r8, 0x9e2da565f4abaf02
xor r8, r15
add r8, r9
movabs r10, 0x771bc4ebecf795c8
xor r10, r12
mov r9, rbp
shl r9, 0x1e
xor r9, rbp
movabs r11, 0x90f3489b43086a37
xor r11, r9
add r11, r10
mov r10, rbp
shl r10, 0x1c
movabs rsi, 0xb9134639ab5450fd
xor rsi, rbp
xor rsi, r10
mov r10, rbp
shl r10, 0x1f
movabs rdi, 0x3f483a5139ff7dbf
xor rdi, rbp
xor rdi, r10
add rdi, rsi
add rdi, r11
add rdi, r8
movabs r8, 0x192cf1914901acd4
xor r8, r9
movabs r10, 0xed3f41bd46008240
xor r10, r9
lea r9, [0x2030efa8]
add r9, r9
add r9, r10
add r9, rdi
add rcx, r8
sub r9, rcx
add r9, 4
movabs rcx, 0xfe8b3988901acd4
xor rcx, rdx
xor rcx, r9
and r9, r8
lea r13, [rcx + r9*2]
jmp 0x20210149
mov rdx, rcx
not rdx
mov r8, rbp
shl r8, 0x1e
movabs r9, 0xc6f5d211599b99f4
xor r9, rbp
xor r9, r8
mov r8, rbp
shl r8, 0x22
or r8, rbp
movabs r10, 0x95f591082664660b
xor r10, r8
and r10, rdx
lea rdx, [0x2030efa8]
add rdx, r9
and r9, rcx
mov r8, rbp
shl r8, 0x1c
movabs r11, 0x24ac4ee38664660b
xor r11, rbp
xor r11, r8
and r11, rcx
add rdx, r9
add rdx, r10
lea r13, [rdx + r11*2]
inc r13
mov r10, qword [rsp + 0x28]
mov r12d, dword [0x2030efac]
movsxd rax, dword [rax + 0x3c]
mov r9, rbp
shl r9, 0x1c
xor r9, rbp
movabs rcx, 0x3ccc0887991019a1
xor rcx, r9
movabs rdx, 0x1bf2ebdbc6efe65e
xor rdx, r15
add rdx, rcx
add rdx, qword [0x204018c0]
add rdx, rax
lea rax, [r14 + rdx]
inc rax
mov ecx, dword [r14 + rdx + 1]
mov edx, dword [rsp + 0x24]
xor edx, 0x6de1b56a
xor r8d, r8d
mov dword [rsp + 0x84], ecx
mov dword [rsp + 0x4c], edx
cmp ecx, edx
cmove r8, rax
mov qword [rsp + 0x60], r8
jne 0x20210a38
mov eax, ebp
xor eax, 0x68abb75a
mov rcx, qword [rsp + 0x60]
add eax, ecx
add eax, 0x31
mov ecx, r9d
xor ecx, eax
xor ecx, 0x93af5887
mov r8, rbp
shl r8, 0x1e
xor r8, rbp
mov edx, r8d
xor edx, 0x33af5887
and edx, eax
lea eax, [rcx + rdx*2]
mov qword [rsp + 0x98], r9
mov ecx, r9d
xor ecx, eax
xor ecx, 0x375448a5
mov qword [rsp + 0x90], r8
mov edx, r8d
xor edx, 0x175448a5
and edx, eax
mov qword [rsp + 0x68], r15
mov eax, r15d
xor eax, 0xcc50a778
mov rdi, rbp
shl rdi, 0x23
or rdi, rbp
mov r8d, ebp
xor r8d, 0x83e04f0d
mov r9, rbp
shl r9, 0x21
or r9, rbp
mov qword [rsp + 0x70], r9
mov r9d, ebp
xor r9d, 0x7c1fb0f2
add r9d, r8d
add r9d, eax
add r9d, ecx
lea eax, [r9 + rdx*2]
mov rcx, qword [rsp + 0x58]
sub eax, dword [r10 + rcx]
add eax, 2
lea rcx, [0x202f4cd0]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
mov r14, rbp
shl r14, 0x1f
xor r14, rbp
movabs rax, 0x36f0f81d6de1f032
xor rax, r14
mov qword [rsp + 0x40], rax
mov rcx, qword [0x203e1c80]
mov eax, dword [0x203e1c70]
sub eax, dword [rsp + 0x20]
cdqe
add rax, rcx
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x50]
mov rsi, r10
call qword [case.0x200b73a7.0]
mov rax, qword [rsi + 0x40]
mov ecx, dword [0x203e1c20]
lea edx, [rcx + 1]
mov dword [0x203e1c20], edx
xor r15d, r15d
mov qword [rsp + 0xb8], rcx
mov dword [rsp + 0x7c], edx
test edx, ecx
jne 0x20210360
mov ebx, 0
test r12d, r12d
jle 0x20210362
mov r8d, dword [rsp + 0x24]
mov ecx, r8d
xor ecx, 0x921e0fd5
inc ecx
mov edx, r8d
xor edx, 0x47844f78
xor r8d, 0xcff989b1
lea r9d, [rdx + r8]
xor r10d, r10d
xor r15d, r15d
xor ebx, ebx
nop dword [rax]
movsxd r10, r10d
xor rbx, qword [r13 + r10 + 8]
xor r15, qword [r13 + r10]
add r10d, edx
add r10d, r8d
neg r10d
mov r11d, ecx
xor r11d, r10d
add r11d, r9d
and r10d, ecx
lea r10d, [r11 + r10*2]
neg r10d
cmp r10d, r12d
jl 0x20210330
jmp 0x20210362
xor ebx, ebx
mov ecx, dword [rsp + 0x24]
xor ecx, 0x193e8fde
cmp dword [0x203e1c28], ecx
mov ecx, 0xe
mov edx, 8
cmove rdx, rcx
mov rcx, rdx
xor rcx, rax
and eax, edx
lea rax, [rcx + rax*2]
mov r12, qword [rsp + 0x28]
mov qword [r12 + 0x40], rax
mov qword [rsp + 0xc8], rdi
mov eax, edi
xor eax, 0xde1f03e
mov rcx, qword [rsp + 0x60]
lea esi, [rcx + rax*8]
mov r13, qword [rsp + 0x58]
mov eax, dword [r12 + r13]
sub ecx, eax
add ecx, 0x58
lea rax, [0x202f4cd0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x3c], ecx
movabs rax, 0x36f0f81d6de1f03e
mov qword [rsp + 0x88], r14
xor rax, r14
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x40], rax
mov rcx, qword [0x203e1c80]
mov eax, dword [0x203e1c70]
sub eax, dword [rsp + 0x20]
cdqe
add rax, rcx
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0x30]
mov r14, qword [rsp + 0x50]
mov rcx, r14
call qword [case.0x200b73a7.0]
mov rax, qword [r12 + 0x40]
mov rdi, rbp
shl rdi, 0x20
or rdi, rbp
movabs rcx, 0xcda841d27ff0ff2c
xor rcx, rdi
movabs rdx, 0xbadcd175bf13b6b5
xor rdx, qword [rsp + 0x68]
add rdx, rcx
mov r9, rbp
shl r9, 0x1d
xor r9, rbp
movabs rcx, 0x520a7010c00f00d3
xor rcx, r9
movabs r8, 0xdbc3e072de1f03e
mov qword [rsp + 0xc0], r9
xor r8, r9
add r8, rcx
add r8, rdx
movabs rcx, 0x80445124c0ec494a
xor rcx, qword [rsp + 0x90]
add rcx, r8
add rax, rcx
add rax, 2
mov qword [r12 + 0x40], rax
sub esi, dword [r12 + r13]
add esi, 0x88
lea rax, [0x202f4cd0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x3c], esi
movabs rax, 0xdbc3e0746de1f032
xor rax, qword [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov rcx, qword [0x203e1c80]
mov eax, dword [0x203e1c70]
mov esi, dword [rsp + 0x20]
sub eax, esi
cdqe
add rax, rcx
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0x30]
mov rcx, r14
call qword [case.0x200b73a7.0]
mov rax, qword [r12 + 0x40]
movabs rcx, 0x6de1f03cde1f032
mov r8, qword [rsp + 0x98]
xor rcx, r8
movabs rdx, 0x6de1f03a6de1f032
xor rdx, rdi
xor r8, rdx
movabs r9, 0xf921e0fc321e0fcd
xor r9, r8
and r9, rax
xor r9, rdx
and rcx, rax
lea rax, [r9 + rcx*2]
mov qword [r12 + 0x40], rax
mov r14, qword [r12 + r13]
mov rcx, qword [0x203e1c90]
mov eax, dword [0x203e1c74]
sub eax, esi
cdqe
add rax, rcx
mov rcx, r14
mov r13d, dword [rsp + 0x80]
mov edx, r13d
call qword [case.0x200b73a7.0]
mov r11, r12
movsxd rax, dword [rax + 0x3c]
lea rcx, [r14 + rax]
xor edi, edi
mov edx, dword [rsp + 0x4c]
cmp dword [r14 + rax], edx
cmove rdi, rcx
movabs r14, 0xdbc3e0746de1f036
xor r14, qword [rsp + 0x70]
cmp dword [rdi + r14*8 + 0x8c], 0
je 0x20210725
mov rsi, rbp
shl rsi, 0x22
or rsi, rbp
movabs r12, 0xb787c0e86de1f036
xor r12, rsi
mov eax, dword [rdi + r12*8 + 0x88]
movabs rcx, 0xc90f07e2921e0fd2
xor rcx, qword [rsp + 0x88]
cmp byte [r11 + rcx], 0
jne 0x20210610
movabs rcx, 0x21e0fc5f921e0fea
xor rcx, qword [rsp + 0x68]
add rcx, r11
mov rdx, qword [rcx]
mov r8, qword [rdx + 8]
mov edx, eax
mov rax, r8
call qword [case.0x200b73a7.0]
mov r11, qword [rsp + 0x28]
test eax, eax
je 0x20210725
mov ecx, dword [rdi + r14*8 + 0x8c]
mov edx, dword [rdi + r12*8 + 0x88]
lea r8, [0x202f4cd0]
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0x40], rcx
mov rcx, qword [0x203e1c80]
mov eax, dword [0x203e1c70]
sub eax, dword [rsp + 0x20]
cdqe
add rax, rcx
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x50]
call qword [case.0x200b73a7.0]
mov r11, qword [rsp + 0x28]
mov eax, dword [rdi + r14*8 + 0x8c]
mov rcx, qword [r11 + 0x40]
mov edx, dword [rsp + 0x24]
xor edx, 0x290f3a6a
cmp dword [0x203e1c2c], edx
mov rdx, qword [0x2030efa0]
mov r8, qword [0x2030ef98]
je 0x202106f6
xor r9d, r9d
mov r10d, dword [rsp + 0x7c]
test dword [rsp + 0xb8], r10d
setne r9b
movabs r10, 0xc74da2c6b16251ae
or r10, r9
movabs r11, 0x38b25d394e9dae51
xor r11, r10
add r9, r9
xor r10d, r10d
add r9, r11
mov r11, qword [rsp + 0x28]
adc r10, 0xffffffffffffffff
sub r8, r15
sbb rdx, rbx
and r8, r9
and rdx, r10
or rdx, r8
add qword [0x204018c0], rdx
movabs rdx, 0xb781e3c2ea62fe02
xor rdx, qword [rsp + 0xa0]
movabs r8, 0xfc96d354c59d01fd
xor rsi, r8
add rsi, rdx
add rsi, rcx
add rax, rsi
inc rax
mov qword [r11 + 0x40], rax
mov r15, qword [rsp + 0x58]
mov r14, qword [r11 + r15]
mov rcx, qword [0x203e1c90]
mov eax, dword [0x203e1c74]
mov ebx, dword [rsp + 0x20]
sub eax, ebx
cdqe
add rax, rcx
mov rcx, r14
mov edx, r13d
call qword [case.0x200b73a7.0]
movsxd rdi, dword [rax + 0x3c]
mov esi, dword [r14 + rdi]
mov rax, qword [rsp + 0x28]
mov r15, qword [rax + r15]
mov rcx, qword [0x203e1c90]
mov eax, dword [0x203e1c74]
sub eax, ebx
cdqe
add rax, rcx
mov rcx, r15
mov edx, r13d
call qword [case.0x200b73a7.0]
mov r11, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [rcx + 6]
test ecx, ecx
mov r13, qword [rsp + 0x68]
mov r9, qword [rsp + 0x98]
je 0x20210a38
add r14, rdi
xor ebx, ebx
mov r8d, dword [rsp + 0x4c]
cmp esi, r8d
cmovne r14, rbx
movsxd rax, dword [rax + 0x3c]
lea rdx, [r15 + rax]
cmp dword [r15 + rax], r8d
cmovne rdx, rbx
mov edi, dword [rsp + 0x24]
mov r8d, edi
xor r8d, 0xf231
movabs rax, 0x1b787c0eede1f132
mov r10, qword [rsp + 0x90]
xor r10, rax
movabs rax, 0x6de1f03cde1f0c2
xor rax, r9
cmp word [rdx + 0x18], r8w
cmove rax, r10
mov r8d, ebp
xor r8d, 0xffef2660
mov edx, ebp
xor edx, 0x5126ff4e
add edx, r8d
mov r10, qword [rsp + 0xc0]
xor r10d, 0x4010d99f
mov r8, qword [rsp + 0x70]
xor r8d, 0xaed900b1
add edx, r10d
add edx, r8d
mov r8, qword [rsp + 0x88]
xor r8d, 0xfa1755c3
xor ebp, 0x5e8aa3c
add ebp, r8d
movabs r12, 0x6f0f81d06de1f016
mov r10, qword [rsp + 0xc8]
xor r12, r10
movabs r8, 0x5713063ce85a0b78
xor r8, r9
mov r15, r9
movabs r9, 0x5a3768a7442ed111
xor r9, r10
add r9, r8
movabs r8, 0xad5de94167a5f487
mov rsi, qword [rsp + 0xa0]
xor rsi, r8
movabs r8, 0x7ac1bdb03dbc7b90
xor r8, r15
movabs r10, 0xcc19098b1bd12eee
xor r10, r15
add r10, r8
add r10, r9
movabs r8, 0x5dff5eec6243846f
xor r13, r8
add r10, rsi
mov r8, r13
mov r13d, edi
xor r13d, 0x901e0fc5
lea rsi, [r8 + r10]
add rsi, 3
mov r8d, edi
xor r8d, 0x921e0fc6
add ebp, r14d
add ebp, eax
add ebp, r8d
inc ebp
lea rdi, [rax + r14]
add rdi, 0xc
add edx, eax
add r14d, edx
add r14d, 0x16
lea r15, [rsp + 0x30]
jmp 0x2021098f
mov eax, ebp
mov rcx, qword [rsp + 0x58]
sub eax, dword [r11 + rcx]
lea rcx, [0x202f4cd0]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0x40], r12
mov rcx, qword [0x203e1c80]
mov eax, dword [0x203e1c70]
sub eax, dword [rsp + 0x20]
cdqe
add rax, rcx
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0xa8]
mov r8, r15
call qword [case.0x200b73a7.0]
mov r11, qword [rsp + 0x28]
mov eax, 0x28
add rax, rsi
add qword [r11 + 0x40], rax
inc ebx
mov rax, qword [rsp + 0x60]
movzx ecx, word [rax + 6]
add rdi, 0x28
add ebp, 0x28
add r14d, 0x28
cmp ebx, ecx
jae 0x20210a38
cmp dword [rdi], 0
je 0x202109c0
mov eax, dword [rdi + 0x18]
mov edx, eax
not edx
and edx, r13d
mov r8d, dword [rsp + 0x24]
xor r8d, eax
xor r8d, 0x6fe1f03a
or r8d, edx
cmp r8d, 0xffffffff
sete dl
test eax, eax
setne al
test al, dl
jne 0x202109ca
dec ecx
cmp ebx, ecx
je 0x20210910
cmp dword [rdi + 4], 0
jne 0x20210971
mov eax, r14d
mov rcx, qword [rsp + 0x58]
sub eax, dword [r11 + rcx]
lea rcx, [0x202f4cd0]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x40], rax
mov rcx, qword [0x203e1c80]
mov eax, dword [0x203e1c70]
sub eax, dword [rsp + 0x20]
cdqe
add rax, rcx
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0xa8]
mov r8, r15
call qword [case.0x200b73a7.0]
mov r11, qword [rsp + 0x28]
mov eax, 4
jmp 0x2021096a
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x84], eax
sete al
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret