Function at 0x18021f380
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rax, rsi
add rax, 0x18
mov cl, byte [rax]
mov eax, dword [0x18051cb38]
and eax, dword [0x18051cb3c]
and eax, 0x88ec4c77
xor eax, 0x570c2045
add eax, 0xd910dca1
cmp eax, 0xfefcb6b0
ja 0x18021f806
jmp 0x18021f3bf
mov eax, dword [0x18051cb40]
xor eax, dword [0x18051cb44]
add eax, 0xec94d816
and eax, 0x91becfc9
mov r8d, 0x506484e5
xor edx, edx
div r8d
movzx edx, cl
cmp eax, 0x12d9c84e
ja 0x18021f3bf
test edx, edx
je 0x18021f464
jmp 0x18021f3f0
mov eax, edx
sub eax, 3
je 0x18021f488
jmp 0x18021f3fd
sub edx, 4
je 0x18021f519
jmp 0x18021f408
mov eax, dword [0x18051cb48]
imul eax, dword [0x18051cb4c]
add eax, 0xc5c768b
xor eax, 0x629c374d
mov ecx, 0xd3afc35f
xor edx, edx
div ecx
cmp eax, 0x986dca3a
jae 0x18021f817
jmp 0x18021f435
mov eax, dword [0x18051cb50]
xor eax, dword [0x18051cb54]
imul eax, eax, 0x16b3f53e
and eax, 0x4505e867
xor eax, 0x8a3aa7af
cmp eax, 0x8a30676b
jbe 0x18021f435
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rdx, qword [rsi]
cmp rdx, 0
sete al
test al, 1
jne 0x18021f408
jmp 0x18021f474
add rsi, 8
mov rcx, qword [rsi]
mov r8d, 1
call fcn.1802cbf20
jmp 0x18021f408
mov ax, word [rsi + 0x20]
cmp ax, 3
sete al
test al, 1
jne 0x18021f49c
jmp 0x18021f408
add rsi, 0x28
mov eax, dword [0x18051cb58]
xor eax, dword [0x18051cb5c]
mov ecx, 0xd5ea1d29
xor edx, edx
div ecx
imul eax, eax, 0x2b4f94d1
or eax, 0xe1e42ff4
cmp eax, 0xd4797010
je 0x18021f828
mov eax, dword [0x18051cb60]
xor edx, edx
div dword [0x18051cb64]
add eax, 0x652f2d9a
imul ebx, eax, 0x4d167dec
or ebx, 0x1424faa8
mov rdi, qword [rsi]
mov rcx, rdi
call fcn.180405e10
cmp ebx, 0xd0ae0a49
je 0x18021f828
jmp 0x18021f503
test al, 1
jne 0x18021f50c
jmp 0x18021f408
mov rcx, rdi
call fcn.180407050
jmp 0x18021f408
mov al, byte [rsi + 0xb8]
cmp al, 3
sete al
test al, 1
jne 0x18021f52a
jmp 0x18021f538
mov rcx, rsi
add rcx, 0x70
call fcn.180222ed0
jmp 0x18021f538
mov rax, rsi
add rax, 0x28
mov ecx, dword [rax]
mov eax, dword [0x18051cb68]
sub eax, dword [0x18051cb6c]
and eax, 0xf7766c30
mov r8d, 0xe6488743
xor edx, edx
div r8d
xor eax, 0x9196dd22
cmp eax, 0x442bec6b
je 0x18021f83d
mov eax, dword [0x18051cb70]
or eax, dword [0x18051cb74]
mov r8d, 0x5a55d045
xor edx, edx
div r8d
or eax, 0x1171f6c
and eax, 0xc381c5b5
cmp ecx, 0
sete dl
cmp eax, 0x645f6e3a
je 0x18021f83d
test dl, 1
jne 0x18021f61c
jmp 0x18021f5a6
mov rdx, qword [rsi + 0x40]
cmp rdx, 0
sete al
mov ecx, dword [0x18051cb78]
or ecx, dword [0x18051cb7c]
xor ecx, 0x7b2a49fb
or ecx, 0xd42d6b0
and ecx, 0x3cdef97e
cmp ecx, 0x4ff5b2b9
je 0x18021f84e
jmp 0x18021f5dd
mov ecx, dword [0x18051cb80]
add ecx, dword [0x18051cb84]
sub ecx, 0x46e8e9af
or ecx, 0x43603d88
or ecx, 0xb8f710fb
cmp ecx, 0xcc76d16f
jb 0x18021f5dd
test al, 1
jne 0x18021f61c
jmp 0x18021f609
mov rcx, qword [rsi + 0x30]
shl rdx, 5
mov r8d, 4
call fcn.1802cbf20
mov rcx, qword [rsi + 0x20]
cmp rcx, 0
sete al
test al, 1
jne 0x18021f408
jmp 0x18021f631
mov rax, rcx
and rax, 3
lea rdx, [0x180485e98]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov ah, 0x23
invalid
outsb dx, byte [rsi]
push 0x3e4f6bb9
jl 0x18021f822
mov bl, 0xf5
or al, 0xf7
jmp 0x18021f433
imul ecx
or edi, esp
invalid
and dword [rdx - 0x54ba3615], esi
invalid
xor dword [rbx], eax
invalid
not dword [0x14c9ce644]
insd dword [rdi], dx
out dx, eax
mov edi, dword [rsi + 0x7ce92261]
std
invalid