Function at 0x18021ead0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rsi, rcx
mov rdx, qword [rsi + 0x50]
cmp rdx, 0
sete al
test al, 1
jne 0x18021eb57
jmp 0x18021eaf1
mov rax, rsi
add rax, 0x48
mov rcx, qword [rax]
shl rdx, 2
mov r8d, 2
call fcn.1802cbf20
mov eax, dword [0x18051ca58]
or eax, dword [0x18051ca5c]
sub eax, 0x912915d6
or eax, 0x73ff56e4
add eax, 0xed31b62a
cmp eax, 0x37a20a05
jb 0x18021ef9b
jmp 0x18021eb32
mov eax, dword [0x18051ca60]
imul eax, dword [0x18051ca64]
and eax, 0x8f046d1f
or eax, 0xbce94137
or eax, 0x2729655
cmp eax, 0x71772342
jbe 0x18021eb32
jmp 0x18021eb57
mov rbx, rsi
add rbx, 0x18
mov rdi, qword [rsi + 0x20]
mov rax, rsi
add rax, 0x28
mov r14, qword [rax]
cmp r14, 0
je 0x18021eced
xor ecx, ecx
jmp 0x18021eb7a
mov eax, dword [0x18051ca68]
imul eax, dword [str.ZYX_nO]
and eax, 0x91c9c3c0
xor eax, 0x8289210e
mov r8d, 0xb7b7c648
xor edx, edx
div r8d
cmp eax, 0xde344a9a
jae 0x18021efa8
jmp 0x18021eba9
mov edx, dword [0x18051ca70]
and edx, dword [0x18051ca74]
xor edx, 0xdcc7a792
xor edx, 0x4cb87f2b
add edx, 0xcf2c6b99
imul rax, rcx, 0x68
mov r12, rdi
add r12, rax
mov r15, rcx
add r15, 1
mov r8, qword [r12 + 0x40]
cmp r8, 0
sete al
cmp edx, 0x37b39b28
jbe 0x18021eba9
test al, 1
jne 0x18021ec5f
jmp 0x18021ebf2
mov eax, dword [0x18051ca78]
xor edx, edx
div dword [0x18051ca7c]
imul eax, eax, 0xe8343da7
sub eax, 0xcc558d6e
and eax, 0xc12eb819
cmp eax, 0x30232ec8
ja 0x18021efb9
mov eax, dword [0x18051ca80]
sub eax, dword [0x18051ca84]
sub eax, 0x34ca0533
add eax, 0xd56097ac
sub eax, 0x854d68f4
cmp eax, 0x3537a4a
jbe 0x18021efb9
jmp 0x18021ec43
mov rax, qword [r8 + 0x20]
mov rcx, r12
add rcx, 0x58
mov rdx, r12
add rdx, 0x48
mov rdx, qword [rdx]
mov r8, qword [r12 + 0x50]
call rax
mov rcx, r12
add rcx, 0x18
mov eax, dword [0x18051ca88]
and eax, dword [0x18051ca8c]
or eax, 0x2a240f28
mov r8d, 0x90fb3b8c
xor edx, edx
div r8d
xor eax, 0x993653c7
cmp eax, 0xfc078714
ja 0x18021efc6
jmp 0x18021ec94
mov eax, dword [0x18051ca90]
and eax, dword [0x18051ca94]
mov r8d, 0x15f8a330
xor edx, edx
div r8d
mov r8d, 0x416389c6
xor edx, edx
div r8d
sub eax, 0x85ed0c74
mov rdx, qword [rcx]
mov r9, qword [rdx + 0x20]
cmp eax, 0xf1a3f01f
jae 0x18021ec94
jmp 0x18021eccb
mov rcx, r12
add rcx, 0x30
mov rdx, qword [r12 + 0x20]
mov r8, qword [r12 + 0x28]
call r9
cmp r15, r14
mov rcx, r15
jne 0x18021eb7a
jmp 0x18021eced
mov eax, dword [0x18051ca98]
or eax, dword [0x18051ca9c]
and eax, 0x3b1d092
and eax, 0x6aaf5b2a
and eax, 0x39de7477
cmp eax, 0xb229d71e
je 0x18021efd7
jmp 0x18021ed15
mov eax, dword [0x18051caa0]
or eax, dword [0x18051caa4]
mov ecx, 0x36f07e07
xor edx, edx
div ecx
and eax, 0x854af92f
and eax, 0x3761bbb6
cmp eax, 0x46184f85
jae 0x18021ed15
jmp 0x18021ed3d
mov rax, qword [rbx]
cmp rax, 0
je 0x18021ed5a
imul rdx, rax, 0x68
mov rcx, rdi
mov r8d, 8
call fcn.1802cbf20
jmp 0x18021ed5a
mov eax, dword [0x18051caa8]
xor edx, edx
div dword [0x18051caac]
xor eax, 0x3c705ee
xor eax, 0x64d3f4a
add eax, 0x86cb49d1
cmp eax, 0xd7076b44
jae 0x18021efe4
mov eax, dword [0x18051cab0]
sub eax, dword [0x18051cab4]
mov ecx, 0xd000c28c
xor edx, edx
div ecx
and eax, 0x8324250
sub eax, 0x9d78ea0d
mov rbx, rsi
add rbx, 0x30
mov rcx, rsi
add rcx, 0x38
cmp eax, 0x779a1e40
je 0x18021efe4
jmp 0x18021edbc
mov rdi, qword [rcx]
mov r14, qword [rsi + 0x40]
cmp r14, 0
je 0x18021edfc
xor r15d, r15d
jmp 0x18021edce
imul rax, r15, 0x48
mov r8, rdi
add r8, rax
add r15, 1
mov rax, qword [r8 + 0x20]
mov rax, qword [rax + 0x20]
mov rcx, r8
add rcx, 0x38
mov rdx, qword [r8 + 0x28]
mov r8, qword [r8 + 0x30]
call rax
cmp r15, r14
jne 0x18021edce
jmp 0x18021edfc
mov rcx, qword [rbx]
mov eax, dword [0x18051cab8]
imul eax, dword [0x18051cabc]
imul eax, eax, 0xa959c4f6
xor eax, 0x90430637
and eax, 0xdaa0d143
cmp eax, 0xc6297004
jae 0x18021eff5
jmp 0x18021ee29
mov eax, dword [0x18051cac0]
add eax, dword [0x18051cac4]
xor eax, 0xa3f6369f
mov r8d, 0xfe3195d2
xor edx, edx
div r8d
imul edx, eax, 0x2f72d561
cmp rcx, 0
sete al
cmp edx, 0x4a728e0c
jae 0x18021ee29
jmp 0x18021ee5c
test al, 1
jne 0x18021ee76
jmp 0x18021ee62
imul rdx, rcx, 0x48
mov rcx, rdi
mov r8d, 8
call fcn.1802cbf20
jmp 0x18021ee76
mov eax, dword [0x18051cac8]
xor eax, dword [0x18051cacc]
imul eax, eax, 0x8cb8366
imul eax, eax, 0xabb8f972
mov ecx, 0x577029df
xor edx, edx
div ecx
cmp eax, 0x8e9ada4d
ja 0x18021f006
jmp 0x18021eea4
mov eax, dword [0x18051cad0]
sub eax, dword [0x18051cad4]
imul eax, eax, 0xaa7ab043
sub eax, 0x8876c9c5
mov ecx, 0x99ceb514
xor edx, edx
div ecx
mov rcx, rsi
add rcx, 0x60
cmp eax, 0x9b84cbeb
ja 0x18021eea4
jmp 0x18021eed4
mov rdi, qword [rcx]
cmp rdi, 0
sete al
test al, 1
jne 0x18021ef01
jmp 0x18021eee4
mov rcx, rdi
call fcn.1802695e0
mov rcx, rdi
mov edx, 0x20
mov r8d, 8
call fcn.1802cbf20
jmp 0x18021ef01
mov rax, rsi
add rax, 0x70
mov rdx, qword [rax]
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x18021ef8d
mov eax, dword [0x18051cad8]
imul eax, dword [0x18051cadc]
sub eax, 0x49ffb04b
imul eax, eax, 0x6cfc4890
add eax, 0xa977f6e2
cmp eax, 0x7902e592
jae 0x18021f017
jmp 0x18021ef44
mov ecx, dword [0x18051cae0]
and ecx, dword [0x18051cae4]
xor ecx, 0xf144e63b
or ecx, 0xfb0ca8ac
sub ecx, 0xeea4e74c
cmp rdx, 0
sete al
cmp ecx, 0x9bd2e9da
jae 0x18021ef44
jmp 0x18021ef73
test al, 1
jne 0x18021ef8d
jmp 0x18021ef79
add rsi, 0x78
mov rcx, qword [rsi]
mov r8d, 1
call fcn.1802cbf20
jmp 0x18021ef8d
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
sub eax, 0x2a1a7cb3
invalid
cmc
movabs al, byte [0x1bef4e059ce7a23b]
jmp 0x18021eba7
mov byte [rbx + rbx*4 - 0x4f], bh
shl byte [rax + 0x55e986db], 0xfc
invalid
std
pushfq
out 0xc0, al
xchg ebx, eax
invalid
pop rsi
invalid
rol byte [rsp + rax*4 - 0x7389347a], 0xa6
xchg edi, eax
sbb eax, 0x8de9a679
std
invalid
js 0x18021efec
invalid
hlt
invalid