Function at 0x180220900
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rcx
mov rdx, qword [rsi]
cmp rdx, 0
sete al
test al, 1
jne 0x18022092d
jmp 0x180220918
mov rax, rsi
add rax, 8
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
mov rax, rsi
add rax, 0x18
mov r8, qword [rax]
cmp r8, 0
sete cl
mov eax, dword [0x18051cd38]
and eax, dword [0x18051cd3c]
xor eax, 0xf30a4851
and eax, 0xc918c769
mov r9d, 0xb8f2afea
xor edx, edx
div r9d
cmp eax, 0xe869c700
jae 0x180220c5f
jmp 0x18022096c
mov eax, dword [0x18051cd40]
add eax, dword [0x18051cd44]
add eax, 0x89c43df5
mov r9d, 0x22923c42
xor edx, edx
div r9d
or eax, 0x773b8b34
cmp eax, 0x8827c897
jae 0x18022096c
test cl, 1
jne 0x1802209b3
jmp 0x18022099b
mov rax, rsi
add rax, 0x20
mov rcx, qword [rax]
mov rdx, r8
mov r8d, 1
call fcn.1802cbf20
mov rax, rsi
add rax, 0x30
mov r8, qword [rax]
mov eax, dword [0x18051cd48]
add eax, dword [0x18051cd4c]
or eax, 0xe6f1743b
mov ecx, 0x36ae5e93
xor edx, edx
div ecx
xor eax, 0x39bc9107
cmp eax, 0x92455194
je 0x180220c70
jmp 0x1802209e9
mov eax, dword [0x18051cd50]
imul eax, dword [0x18051cd54]
and eax, 0xbfcb1b1a
sub eax, 0x5d24afb9
mov ecx, 0xfd8eeb69
xor edx, edx
div ecx
cmp r8, 0
sete cl
cmp eax, 0x949db214
ja 0x1802209e9
test cl, 1
jne 0x180220a38
jmp 0x180220a1e
mov rax, rsi
add rax, 0x38
mov rcx, qword [rax]
mov rdx, r8
mov r8d, 1
call fcn.1802cbf20
jmp 0x180220a38
mov rax, rsi
add rax, 0x48
mov rdx, qword [rax]
cmp rdx, 0
sete al
test al, 1
jne 0x180220a66
jmp 0x180220a4f
mov rax, rsi
add rax, 0x50
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180220a66
mov rcx, rsi
add rcx, 0x60
mov eax, dword [0x18051cd58]
xor eax, dword [0x18051cd5c]
or eax, 0xa0f62caa
sub eax, 0xfc6d7cde
xor eax, 0x9fc72142
cmp eax, 0x83e98283
jae 0x180220c81
mov eax, dword [0x18051cd60]
xor edx, edx
div dword [0x18051cd64]
mov r8d, 0xb1875998
xor edx, edx
div r8d
imul eax, eax, 0x2be03b48
sub eax, 0x1745724d
cmp eax, 0xb9ae1dc7
jbe 0x180220c81
jmp 0x180220ac4
mov eax, dword [0x18051cd68]
or eax, dword [0x18051cd6c]
mov r8d, 0x575b15dd
xor edx, edx
div r8d
mov r8d, 0x8c828be2
xor edx, edx
div r8d
mov r8d, 0xa5b6aab
xor edx, edx
div r8d
cmp eax, 0xeca20548
jae 0x180220c8e
jmp 0x180220afe
mov r8d, dword [0x18051cd70]
or r8d, dword [0x18051cd74]
or r8d, 0x5cb736ce
and r8d, 0x66ba129e
and r8d, 0xb11943b6
mov rdx, qword [rcx]
cmp rdx, 0
sete al
cmp r8d, 0x517c83b4
je 0x180220afe
test al, 1
jne 0x180220b4b
jmp 0x180220b3a
mov rcx, qword [rsi + 0x68]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180220b4b
mov rax, rsi
add rax, 0x78
mov rdx, qword [rax]
cmp rdx, 0
sete al
test al, 1
jne 0x180220b7b
jmp 0x180220b62
mov rax, rsi
add rax, 0x80
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180220b7b
mov rax, rsi
add rax, 0x90
mov rdx, qword [rax]
cmp rdx, 0
je 0x180220ba6
mov rax, rsi
add rax, 0x98
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180220ba6
mov rax, rsi
add rax, 0xa8
mov r8, qword [rax]
mov eax, dword [0x18051cd78]
add eax, dword [0x18051cd7c]
sub eax, 0xc33c4c07
sub eax, 0x3e032c3b
mov ecx, 0x80d7fb8a
xor edx, edx
div ecx
cmp eax, 0x2abc2213
ja 0x180220c9f
jmp 0x180220bde
mov eax, dword [0x18051cd80]
sub eax, dword [0x18051cd84]
xor eax, 0x6232f8c7
and eax, 0xf3c75c99
mov ecx, 0x2af491ac
xor edx, edx
div ecx
cmp r8, 0
sete cl
cmp eax, 0x4f25795e
jae 0x180220bde
test cl, 1
jne 0x180220c29
jmp 0x180220c12
mov rcx, qword [rsi + 0xb0]
mov rdx, r8
mov r8d, 1
call fcn.1802cbf20
jmp 0x180220c29
mov rax, rsi
add rax, 0xc0
mov rdx, qword [rax]
cmp rdx, 0
sete al
test al, 1
jne 0x180220c59
jmp 0x180220c42
add rsi, 0xc8
mov rcx, qword [rsi]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180220c59
add rsp, 0x20
pop rsi
ret
cmp edi, dword [rax - 0x581243dd]
mov esp, 0xe24e1b38
mov eax, 0xfffcfae9
jmp qword [rbx - 0x5c10dcae]
movabs dword [0x7c92f375a3ef2352], eax
sub ecx, edi
fucomp st(1)
std
invalid
movabs eax, dword [0xe9dd09d0cb2acbf0]
add eax, 0xbdfffffe
invalid
mov ebp, 0xa2849562
sub al, 0xde
invalid
cmp al, 0x48
sub dword [rbp + 0x5352c611], 0xffffffdd
sbb bl, ch
pop rax
jmp 0x180220bdc