Function at 0x18021f030
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rax, rsi
add rax, 0x10
movzx eax, byte [rax]
mov ecx, eax
sub ecx, 3
je 0x18021f066
jmp 0x18021f050
sub eax, 4
je 0x18021f0f3
jmp 0x18021f05b
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov rax, rsi
add rax, 0x18
cmp word [rax], 3
sete al
test al, 1
jne 0x18021f07a
jmp 0x18021f05b
mov eax, dword [0x18051cae8]
xor eax, dword [0x18051caec]
or eax, 0x7babf3ea
add eax, 0x3f576e26
add eax, 0x591745d8
cmp eax, 0x69f3d762
jae 0x18021f31e
mov eax, dword [0x18051caf0]
sub eax, dword [0x18051caf4]
add eax, 0xf0112a8f
imul ecx, eax, 0x5e8d94b8
add ecx, 0x547b405c
mov rax, rsi
add rax, 0x20
cmp ecx, 0x62ec44ac
jae 0x18021f31e
jmp 0x18021f0d2
mov rsi, qword [rax]
mov rcx, rsi
call fcn.180405e10
test al, 1
jne 0x18021f0e6
jmp 0x18021f05b
mov rcx, rsi
call fcn.180407050
jmp 0x18021f05b
mov cl, byte [rsi + 0xb0]
mov eax, dword [0x18051caf8]
or eax, dword [0x18051cafc]
mov r8d, 0x7acc0ac7
xor edx, edx
div r8d
or eax, 0xfc244b9f
or eax, 0x890987d
cmp eax, 0xb6ee345b
jbe 0x18021f32b
jmp 0x18021f127
mov edx, dword [0x18051cb00]
add edx, dword [0x18051cb04]
and edx, 0x7eb43ed4
sub edx, 0xf3d7f49f
add edx, 0xa81c199a
cmp cl, 3
sete al
cmp edx, 0x29a1436c
jae 0x18021f127
jmp 0x18021f155
test al, 1
jne 0x18021f15b
jmp 0x18021f169
mov rcx, rsi
add rcx, 0x68
call fcn.180222ed0
jmp 0x18021f169
mov rax, rsi
add rax, 0x20
mov eax, dword [rax]
cmp eax, 0
je 0x18021f1f3
mov r8, qword [rsi + 0x38]
mov eax, dword [0x18051cb08]
and eax, dword [0x18051cb0c]
or eax, 0xdda1b6fc
add eax, 0x1f882cf2
and eax, 0xfbc68de7
cmp eax, 0x461b0d0f
jb 0x18021f33c
jmp 0x18021f1a3
mov eax, dword [0x18051cb10]
xor edx, edx
div dword [0x18051cb14]
xor eax, 0xdb9483d2
sub eax, 0xabbebc0c
add eax, 0x18af3b55
cmp r8, 0
sete cl
cmp eax, 0xddc718fb
jae 0x18021f1a3
jmp 0x18021f1d0
test cl, 1
jne 0x18021f1f3
jmp 0x18021f1d7
mov rax, rsi
add rax, 0x28
mov rcx, qword [rax]
shl r8, 5
mov rdx, r8
mov r8d, 4
call fcn.1802cbf20
add rsi, 0x18
mov rax, qword [rsi]
cmp rax, 0
sete cl
test cl, 1
jne 0x18021f05b
jmp 0x18021f20c
mov rcx, rax
and rcx, 3
lea rdx, [0x180485e88]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
jmp 0x18021f287
mov ebp, dword [0x18051cb20]
or ebp, dword [0x18051cb24]
xor ebp, 0x216f1211
or ebp, 0xa205d77d
sub ebp, 0x755a8a7e
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.1802cbf20
cmp ebp, 0xfa9b71df
je 0x18021f287
jmp 0x18021f2bd
jmp 0x18021f2bf
mov rcx, rsi
mov edx, 0x18
mov r8d, 8
call fcn.1802cbf20
mov eax, dword [0x18051cb28]
add eax, dword [0x18051cb2c]
or eax, 0xd371a717
or eax, 0x7be46c2a
imul eax, eax, 0x756a772b
cmp eax, 0x5f1666c
je 0x18021f36c
mov eax, dword [0x18051cb30]
xor edx, edx
div dword [0x18051cb34]
fsubr dword [rdi]
add byte [rcx], dh
sal bh, cl
xor eax, 0x2fd831
xor eax, 0xd8bfec3b
sub eax, 0xcdd5febf
sub eax, 0x890b3806
cmp eax, 0x21abaa7d
jb 0x18021f36c
jmp 0x18021f05b
adc bl, byte [rdi]
or eax, 0xf510d3b8
xchg edi, eax
jmp 0x18021f0a0
jmp 0x1dc027d4e
fsubr dword [rbx - 0x56ddda74]
xchg dword [rdi + 0x26], ecx
wait
shr byte [rbp - 0x1ab17], 0xff
xchg r10, rax
mov dl, byte [rdx - 0x536f7b12]
adc eax, 0x48a2b820
mov ecx, edi
mov rdx, rbx
mov r8, r14
call fcn.1802cbf20
jmp 0x18021f285
jl 0x18021f2f8
invalid