Function at 0x180221f20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rcx, rsi
add rcx, 0x5c
mov eax, dword [0x18051cf38]
sub eax, dword [0x18051cf3c]
add eax, 0x75079e19
sub eax, 0xc16ec02b
and eax, 0x38263888
cmp eax, 0xc7795ae5
jae 0x1802223f3
mov eax, dword [0x18051cf40]
xor edx, edx
div dword [0x18051cf44]
sub eax, 0x88ca019f
add eax, 0xfcc861af
add eax, 0x606574f2
mov dl, byte [rcx]
cmp eax, 0x4abe009
jb 0x1802223f3
jmp 0x180221f87
movzx eax, dl
test dl, dl
jne 0x180221f90
jmp 0x180221fab
mov ecx, eax
sub ecx, 3
je 0x1802220cb
jmp 0x180221f9d
sub eax, 4
je 0x180222133
jmp 0x1802220be
mov rdi, rsi
add rdi, 8
mov rbx, qword [rsi + 8]
mov r14, qword [rsi + 0x10]
cmp r14, 0
je 0x180222055
xor r15d, r15d
jmp 0x180221fc9
imul rcx, r15, 0x18
mov rax, rbx
add rax, rcx
add r15, 1
mov rdx, qword [rax]
cmp rdx, 0
je 0x180221ff4
add rax, 8
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
jmp 0x180221ff4
mov eax, dword [0x18051cf48]
xor eax, dword [0x18051cf4c]
and eax, 0xf6911f33
add eax, 0xb123ddef
sub eax, 0xbb5c82d9
cmp eax, 0xbfbf3bec
je 0x180222400
jmp 0x18022201c
mov ecx, dword [0x18051cf50]
or ecx, dword [0x18051cf54]
and ecx, 0x12a0746
xor ecx, 0x9abce448
xor ecx, 0xe4ba2d28
cmp r15, r14
sete al
cmp ecx, 0xcc3aa3fb
ja 0x18022201c
jmp 0x18022204a
test al, 1
jne 0x180222053
jmp 0x180221fc9
jmp 0x180222055
mov eax, dword [0x18051cf58]
sub eax, dword [0x18051cf5c]
add eax, 0x343ea89b
add eax, 0xa6f3dcca
and eax, 0x5f56a77a
cmp eax, 0x202ff7b2
jb 0x180222411
mov eax, dword [0x18051cf60]
and eax, dword [0x18051cf64]
add eax, 0xfc5bf0a9
sub eax, 0xae00894d
or eax, 0x4ca071ff
cmp eax, 0xc6512c99
je 0x180222411
jmp 0x1802220a3
mov rax, qword [rsi]
cmp rax, 0
je 0x1802220be
mov rcx, qword [rdi]
imul rdx, rax, 0x18
mov r8d, 8
call fcn.1802cbf20
nop
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rdi, rsi
add rdi, 0x70
mov eax, dword [0x18051cf68]
xor eax, dword [0x18051cf6c]
add eax, 0x67629dc3
xor eax, 0x2270e2f0
mov ecx, 0x1575d0f6
xor edx, edx
div ecx
cmp eax, 0xe979c83d
jae 0x18022241e
mov eax, dword [0x18051cf70]
add eax, dword [0x18051cf74]
sub eax, 0x4fc675a0
add eax, 0x3d913ee7
imul ebx, eax, 0x11c02818
mov rcx, rdi
call fcn.18021f380
cmp ebx, 0xc8b86aba
jb 0x18022241e
jmp 0x18022212e
jmp 0x1802223ea
mov rdi, rsi
add rdi, 0x78
mov al, byte [rsi + 0xc9]
movzx ecx, al
mov eax, dword [0x18051cf78]
xor eax, dword [0x18051cf7c]
mov r8d, 0x9022303b
xor edx, edx
div r8d
or eax, 0xb7a5bbab
imul eax, eax, 0xe0468933
cmp eax, 0x5a1825e
je 0x180222437
mov eax, dword [0x18051cf80]
xor edx, edx
div dword [0x18051cf84]
xor eax, 0x1ec81526
mov r8d, 0x9190db86
xor edx, edx
div r8d
or eax, 0xe5f84b16
cmp eax, 0xc9712ce8
je 0x180222437
mov eax, 0x30
add ecx, 0xfffffffd
mov edx, ecx
sub edx, 4
ja 0x18022234e
lea rdx, [0x180485f2c]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
mov rcx, rsi
add rcx, 0x90
mov eax, dword [0x18051cfa8]
and eax, dword [0x18051cfac]
mov r8d, 0x6b85d4fa
xor edx, edx
div r8d
imul eax, eax, 0xae000068
sub eax, 0x76124416
cmp eax, 0x9583da9c
jae 0x180222466
mov eax, dword [0x18051cfb0]
sub eax, dword [0x18051cfb4]
or eax, 0x70cfabf1
mov r8d, 0x98f0cd9e
xor edx, edx
div r8d
sub eax, 0xa3f66071
mov rdx, qword [rcx]
cmp eax, 0xf5dd3151
jae 0x180222466
jmp 0x180222331
cmp rdx, 0
je 0x18022234e
mov rax, rsi
add rax, 0x98
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
mov rcx, rsi
add rcx, 0x60
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x18022236a
call fcn.180275260
jmp 0x18022236a
mov rdi, rsi
add rdi, 0x68
mov eax, dword [0x18051cfb8]
xor edx, edx
div dword [0x18051cfbc]
sub eax, 0xdc39be1b
xor eax, 0xcd2c65a7
sub eax, 0x27326862
cmp eax, 0x5383eaf9
je 0x180222477
jmp 0x18022239b
mov eax, dword [0x18051cfc0]
xor eax, dword [0x18051cfc4]
mov ecx, 0xf049fd9d
xor edx, edx
div ecx
and eax, 0x1ef2a7c3
mov ecx, 0xdfa2beec
xor edx, edx
div ecx
mov ebx, eax
mov rcx, rdi
call fcn.18040c670
mov rax, qword [rdi]
cmp ebx, 0x97c6e69b
jae 0x18022239b
jmp 0x1802223d5
lock dec qword [rax]
sete al
test al, 1
je 0x1802223ea
mov rcx, rdi
call fcn.180275260
jmp 0x1802223ea
add rsi, 0x18
jmp 0x180221fab
invalid
or dword [rdx - 0x42956873], 0xdad1c818
adc al, 0x9a
jmp 0x18022201a
adc al, 0x13
invalid
sbb eax, 0xdfd15bf2
mov ah, 0x94
adc byte [rcx], ah
clc
outsb dx, byte [rsi]
mov edx, 0xe8f98948
iretq
xor byte [rcx + 0x55], bl
sub dword [rax - 0x1603007b], esp
sub al, 0xfd
invalid
test dword [rdi*2 + 0x5ed65fab], ecx
or dword [rsi + 0x23], edx
xchg edi, eax
jmp 0x180222300
pop rax
cdq
invalid