Function at 0x18021b980
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
mov rsi, rcx
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r12, rsp
mov eax, dword [0x18051c668]
sub eax, dword [0x18051c66c]
and eax, 0xee63a390
or eax, 0x9794b73d
add eax, 0x4e35cbfd
cmp eax, 0xbd299d89
je 0x18021bfc4
jmp 0x18021b9d6
mov eax, dword [0x18051c670]
xor edx, edx
div dword [0x18051c674]
sub eax, 0x2d21beb
add eax, 0x71537326
add eax, 0x5a5e909b
mov r15, rsi
add r15, 0x59
movzx ecx, byte [rsi + 0x59]
cmp eax, 0x59e5b408
je 0x18021b9d6
test ecx, ecx
je 0x18021ba1b
jmp 0x18021ba0b
sub ecx, 1
je 0x18021bfc0
jmp 0x18021ba16
jmp 0x18021bc38
mov rax, qword [rsi + 0x48]
mov qword [rbp + 0x20], rax
mov rax, qword [rsi + 0x50]
mov eax, dword [rsi + 0x50]
mov qword [rsi], rax
mov r13b, byte [rsi + 0x58]
mov qword [rbp - 0x10], rsi
lea rax, [fcn.180427b40]
mov qword [rbp - 8], rax
lea rax, [0x180485470]
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], 1
mov qword [rbp - 0x58], 0
lea rax, [rbp - 0x10]
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], 1
lea rcx, [rbp - 0x28]
lea rdx, [rbp - 0x78]
sub rsp, 0x20
call fcn.1804484a0
add rsp, 0x20
mov rax, qword [rbp - 0x28]
mov qword [rsi + 8], rax
mov rax, qword [rbp - 0x20]
mov qword [rsi + 0x10], rax
mov rax, qword [rbp - 0x18]
mov qword [rsi + 0x18], rax
mov rbx, qword [rsi + 0x10]
mov rdi, qword [rsi + 0x18]
xor ecx, ecx
cmp rdi, 0
jl 0x18021bb41
cmp rdi, 0
sete cl
mov eax, dword [0x18051c678]
xor edx, edx
div dword [0x18051c67c]
xor eax, 0xd780e468
mov r8d, 0x4888bd09
xor edx, edx
div r8d
or eax, 0x69e67f29
cmp eax, 0x23c66a04
je 0x18021bfd5
jmp 0x18021bae0
mov eax, dword [0x18051c680]
or eax, dword [0x18051c684]
mov r8d, 0xbbfac2ff
xor edx, edx
div r8d
sub eax, 0x4a877a11
imul eax, eax, 0x269ceb2f
cmp eax, 0xcf7dc00b
jae 0x18021bae0
mov r14d, 1
test cl, 1
jne 0x18021bb4d
jmp 0x18021bb16
mov al, byte [0x1805297c8]
sub rsp, 0x20
mov rcx, rdi
mov edx, 1
call fcn.1802cbf10
add rsp, 0x20
mov r14, rax
mov ecx, 1
cmp r14, 0
inc byte [rax]
je 0x18021bb41
jmp 0x18021bb4d
sub rsp, 0x20
mov rdx, rdi
call fcn.180407090
sub rsp, 0x20
mov rcx, r14
mov rdx, rbx
mov r8, rdi
clc
call fcn.180468b10
add rsp, 0x20
mov byte [rbp + 0x18], r13b
mov byte [rbp + 0x19], 0x63
sbb dword [r11 + 0x48], r12d
mov dword [rbp], edi
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], rdi
lea rcx, [rbp - 0x48]
mov rdx, rbp
sub rsp, 0x20
call fcn.18027b040
add rsp, 0x20
cmp qword [rbp - 0x48], 8
je 0x18021bbec
ud2
mov rax, qword [rbp - 0x40]
mov qword [r12], rax
mov rax, qword [rbp - 0x38]
mov qword [r12 + 8], rax
or byte [rax - 0x75], cl
ror byte [r9 - 0x77], 1
and al, 0x10
invalid
mov rax, qword [r12]
mov qword [rsi + 0x20], rax
mov rax, qword [r12 + 8]
mov qword [rsi + 0x28], rax
mov dword [rsi + 0x28], eax
mov rax, qword [r12 + 0x10]
mov qword [rsi + 0x30], rax
mov rax, qword [rbp + 0x20]
mov qword [rsi + 0x38], rax
mov byte [rsi + 0x40], 0
mov rax, rsi
add rax, 0x41
mov byte [rax], 2
add ch, bl
invalid
jmp 0x18021bc3a
mov rdi, rsi
add rdi, 0x20
sub rsp, 0x20
and byte [rax - 0x77], cl
stc
call fcn.180206770
add rsp, 0x20
mov rax, rsi
add rax, 0x40
cmp byte [rax], 0
jne 0x18021bce5
invalid
test byte [rax], al
add byte [rax], al
mov rdx, qword [rdi]
cmp rdx, 0
je 0x18021bce5
mov rax, rsi
add rax, 0x28
mov ecx, dword [0x18051c698]
imul ecx, dword [0x18051c69c]
or eax, 0x300a1e
xor ecx, 0xf588e211
xor ecx, 0x319bbcbb
sub ecx, 0xb4ec8e87
cmp ecx, 0x9977f4f4
stc
hlt
hlt
ja 0x18021bc2f
je 0x18021bff7
mov r8d, dword [0x18051c6a0]
imul r8d, dword [0x18051c6a4]
xor r8d, 0x9a6afa24
or r8d, 0xdbd23ec
xor r8d, 0xf06adca
lodsd eax, dword [rsi]
invalid
cmovs ecx, dword [rbx - 0x77ebef8]
invalid
invalid
invalid
invalid
jbe 0x18021bff7
invalid
add eax, dword [rax]
invalid
jmp 0x18021bcd2
sub rsp, 0x20
mov r8d, 1
call fcn.1802cbf20
add rsp, 0x20
mov eax, dword [0x18051c6a8]
xor edx, edx
invalid
div dword [0x18051c6ac]
xor eax, 0x7b61c31a
or eax, 0xea7091e5
invalid
imul eax, eax, 0x4748211a
cmp eax, 0x71bbcd86
je 0x18021c004
add byte [rax], al
jmp 0x18021bd10
mov eax, dword [0x18051c6b0]
xor edx, edx
div dword [0x18051c6b4]
xor byte [rax], al
or eax, 0x16d29f61
xor eax, 0xc0221f8b
sub eax, 0xa7f33e51
repe cmpsd dword [rsi], dword [rdi]
mov rcx, rsi
add rcx, 8
add ecx, 8
cmp eax, 0x388f5db5
jae 0x18021bd10
jmp 0x18021bd3d
mov r8, qword [rcx]
mov eax, dword [0x18051c6b8]
sub eax, dword [0x18051c6bc]
sub eax, 0xe05a23d5
and eax, 0x2837a090
xor eax, 0xbdcf9678
cmp eax, 0x649cec07
jb 0x18021c015
mov eax, dword [0x18051c6c0]
or eax, dword [0x18051c6c4]
mov ecx, 0xdeb3a238
cmp byte [rdx - 0x2dce214d], ah
div ecx
and eax, 0x766967d6
imul ecx, eax, 0x94f767b
cmp r8, 0
sete al
cmp ecx, 0xa45e88c5
jae 0x18021c015
test al, 1
jne 0x18021be12
jmp case.0x18020aff1.131
mov eax, dword [0x18051c6c8]
or eax, dword [0x18051c6cc]
mov ecx, 0xa75f5ca7
xor edx, edx
div ecx
add eax, 0x9239356d
cmp dword [rdx + 0x7b58c069], edx
ret
imul edi, dword [0x11b10f526], 0x258840f
add byte [rax], al
mov eax, dword [0x18051c6d0]
and eax, dword [0x18051c6d4]
mov ecx, 0x36c0a894
xor edx, edx
div ecx
and eax, 0xdc1bfaa3
fsubr qword [0x19a0211cc]
mov rcx, qword [rsi + 0x10]
cmp eax, 0x9abfffc7
jbe 0x18021c022
xchg byte [rdx], ch
add al, byte [rax]
invalid
jmp 0x18021bdfa
sub rsp, 0x20
mov rdx, r8
mov r8d, 1
call fcn.1802cbf20
add rsp, 0x20
jmp 0x18021be12
invalid
mov rcx, qword [rsi]
mov r8, rcx
and r8, 3
mov eax, dword [0x18051c6d8]
xor byte [rax], al
xor edx, edx
div dword [0x18051c6dc]
and eax, 0x45d006af
mov r9d, 0x1b2ecc62
sbb esi, dword cs:[rcx]
rol byte [rcx - 9], cl
int1
imul eax, eax, 0xd8db05a4
cmp eax, 0xaa3628ef
stosb byte [rdi], al
je 0x18021c033
jmp 0x18021be4d
mov eax, dword [0x18051c6e0]
add eax, dword [0x18051c6e4]
xor byte [rax], al
and eax, 0x813bc572
mov r9d, 0x3f0adac9
xor edx, edx
div r9d
add eax, 0x61b51741
cmp eax, 0x1767efff
jb 0x18021be4d
lea rax, [0x180485ad4]
movsxd rdx, dword [rax + r8*4]
add rdx, rax
jmp rdx
shr rcx, 0x20
cmp ecx, 0x29
setb al
jmp case.0x18021be83.0
mov rsi, rcx
add rsi, 0xffffffffffffffff
mov rdi, qword [rcx - 1]
mov rbx, qword [rcx + 7]
mov r14, qword [rbx]
cmp r14, 0
sete al
test al, 1
jne 0x18021bf67
jmp 0x18021beb7
mov eax, dword [0x18051c6e8]
xor eax, dword [0x18051c6ec]
imul eax, eax, 0x5694981a
and eax, 0xd08bf56e
add eax, 0x283e2ca8
cmp eax, 0xa12d6adc
jb 0x18021c044
jmp 0x18021bee0
mov eax, dword [0x18051c6f0]
xor eax, dword [0x18051c6f4]
add eax, 0x9baee370
sub eax, 0x36a3f7fe
imul r12d, eax, 0x466ff995
sub rsp, 0x20
mov rcx, rdi
call r14
add rsp, 0x20
cmp r12d, 0x63e82106
je 0x18021bee0
jmp 0x18021bf16
mov eax, dword [0x18051c6f8]
add eax, dword [0x18051c6fc]
mov ecx, 0x279cc2cb
xor edx, edx
div ecx
sub eax, 0x78661a46
add eax, 0xb7f94d32
cmp eax, 0xc127fb59
sti
invalid
ror dword [rdi], 0x83
invalid
add dword [rax], eax
invalid
jmp 0x18021bf42
mov eax, dword [0x18051c700]
xor eax, dword [0x18051c704]
and eax, 0x3a6f5dd3
add eax, 0x8f4ef1b4
imul eax, eax, 0xc0b73c46
cmp eax, 0xf6c87844
je 0x18021bf42
jmp 0x18021bf67
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
cmp rdx, 0
sete al
test al, 1
jne 0x18021bf8e
jmp 0x18021bf7c
sub rsp, 0x20
mov rcx, rdi
call fcn.1802cbf20
add rsp, 0x20
jmp 0x18021bf8e
sub rsp, 0x20
mov rcx, rsi
mov edx, 0x18
mov r8d, 8
call fcn.1802cbf20
add rsp, 0x20
jmp case.0x18021be83.0
mov byte [r15], 1
lea rsp, [rbp + 0x28]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2
mov al, 0x89
mov ebx, 0xcdc4cef4
jbe 0x18021c011
adc al, 0x89
jmp 0x18021b9d4
jno 0x18021c04a
sbb edi, edx
adc bh, byte [rsi]
mov ebx, 0xa9f5ee4f
movabs eax, dword [0x2812dffffffaf8e9]
sub ebp, dword [rdi + 0xb]
invalid
out 0x81, eax
adc byte [r9d - 0x23], r15b
jmp 0x18021bc9c
mov bh, 0x15
add dword [rax], 0x41
xor edx, 0x57
sub eax, 0xe90d0e2e
stc
cld
invalid
push rdx
movabs r15, 0xfd44e9fe049f985e
invalid
je 0x18021c02d
int3
invalid
cmc
test al, 0xa6
xchg ecx, eax
sub byte [rdx], bh
je 0x18021c093
fisttp word [0x1880b5f10]
invalid
rcr byte [rdx + 0x1667c524], cl
mov eax, 0x20ec8348
mov rcx, rdi
call r14
add rsp, 0x20
jmp 0x18021bede
enter 0x74f9, 0x47
int3
sub esp, eax
or eax, 0x269270
mov esi, edi
invalid
mov eax, esi
cmovb eax, esi
xchg bl, dl
invalid
invalid
add byte [rax], al
mov edx, edi
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax + 0xfc83949], al
xchg esp, eax
sar dword [0x1653fe95b], 0x74
adc ebx, dword [rsi]
in eax, 0x74
out dx, al
invalid
invalid