Function at 0x180272e10
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, qword [rcx]
mov rax, qword [rsi + 0x10]
cmp rax, 0
sete al
mov rdi, rsi
add rdi, 0x18
test al, 1
jne 0x180272e34
jmp 0x180272fe1
mov eax, dword [0x180521c20]
and eax, dword [0x180521c24]
sub eax, 0x7e55fd1f
sub eax, 0x46afc2dd
imul eax, eax, 0x27b2db28
cmp eax, 0xc6beaa20
jae 0x18027310d
jmp 0x180272e5d
mov eax, dword [0x180521c28]
and eax, dword [0x180521c2c]
or eax, 0xb5f4c146
xor eax, 0xd7389118
imul eax, eax, 0x97688fbc
cmp eax, 0x41ded1f4
je 0x180272e5d
jmp 0x180272e82
mov r8, qword [rdi]
movabs rax, 0x8000000000000000
cmp r8, rax
sete al
test al, 1
jne 0x180272f5e
jmp 0x180272e9f
mov rax, rsi
add rax, 0x38
mov rdx, qword [rax]
cmp rdx, 0
je 0x180272f1c
mov rcx, qword [rsi + 0x30]
shl rdx, 5
mov r8d, 8
call fcn.1802cbf20
mov r8, qword [rdi]
mov eax, dword [0x180521c30]
xor eax, dword [0x180521c34]
imul eax, eax, 0xeb88ea33
add eax, 0x6c75c793
mov ecx, 0x2a382901
xor edx, edx
div ecx
cmp eax, 0x7faea6ce
ja 0x18027311e
jmp 0x180272ef2
mov eax, dword [0x180521c38]
xor edx, edx
div dword [0x180521c3c]
xor eax, 0x2421004c
or eax, 0x8402ccf1
mov ecx, 0x80bcde8b
xor edx, edx
div ecx
cmp eax, 0x357169e0
ja 0x180272ef2
jmp 0x180272f1c
cmp r8, 0
je 0x180272f3a
mov rcx, qword [rsi + 0x20]
shl r8, 4
mov rdx, r8
mov r8d, 8
call fcn.1802cbf20
jmp 0x180272f3a
mov rcx, rsi
add rcx, 0x40
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
jne 0x180272f54
jmp 0x18027307a
call fcn.180279160
jmp 0x18027307a
mov rcx, rsi
add rcx, 0x20
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x18027307a
mov eax, dword [0x180521c40]
and eax, dword [0x180521c44]
mov r8d, 0x1e9fa3af
xor edx, edx
div r8d
mov r8d, 0xf40dd2a3
xor edx, edx
div r8d
mov r8d, 0xab752bc4
xor edx, edx
div r8d
cmp eax, 0xef6bd802
jae 0x18027312f
jmp 0x180272fb1
mov eax, dword [0x180521c48]
mov r8d, dword [0x180521c4c]
xor edx, edx
div r8d
imul eax, eax, 0xdb6a50d4
add eax, 0x8fc8eea4
cmp eax, 0xbb8c8278
jae 0x180272fb1
jmp 0x180272fd7
call fcn.180274600
jmp 0x18027307a
mov rdx, qword [rdi]
movabs rax, 0x8000000000000000
cmp rdx, rax
sete al
test al, 1
jne 0x18027305e
jmp 0x180272ffa
mov rax, qword [rsi + 0x38]
cmp rax, 0
je 0x180273023
mov rcx, rsi
add rcx, 0x30
mov rcx, qword [rcx]
shl rax, 5
mov rdx, rax
mov r8d, 8
call fcn.1802cbf20
mov rdx, qword [rdi]
cmp rdx, 0
je 0x180273042
mov rax, rsi
add rax, 0x20
mov rcx, qword [rax]
shl rdx, 4
mov r8d, 8
call fcn.1802cbf20
mov rcx, rsi
add rcx, 0x40
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x18027307a
call fcn.180279160
jmp 0x18027307a
mov rcx, rsi
add rcx, 0x20
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x18027307a
call fcn.180274600
jmp 0x18027307a
mov rax, 0xffffffffffffffff
cmp rsi, rax
sete al
test al, 1
jne 0x180273106
jmp 0x18027308d
mov rax, rsi
add rax, 8
lock dec qword [rax]
sete cl
jmp 0x18027309d
mov eax, dword [0x180521c50]
and eax, dword [0x180521c54]
mov r8d, 0x4059aeaf
xor edx, edx
div r8d
or eax, 0xf77ea0cc
imul eax, eax, 0x4984688a
cmp eax, 0xa9cff2ad
je 0x18027313c
mov eax, dword [0x180521c58]
add eax, dword [0x180521c5c]
imul eax, eax, 0x91c9fe89
imul eax, eax, 0x36029864
sub eax, 0x7671bb85
cmp eax, 0xdfaba018
jb 0x18027313c
test cl, 1
jne 0x1802730f1
jmp 0x180273106
adc eax, 0xbaf18948
pop rax
add byte [rax], al
add byte [rcx - 0x48], al
or byte [rax], al
add byte [rax], al
mov rcx, rsi
mov edx, 0x58
mov r8d, 8
call fcn.1802cbf20
jmp 0x180273106
add rsp, 0x28
pop rdi
pop rsi
ret
jae 0x1802730f0
adc al, 0x6e
scasb al, byte [rdi]
xchg dword [rdi - 0x1668c5d4], edx
cmp eax, 0xf5fffffd
cmc
and dl, dl
add al, 0xbb
and cl, ah
out dx, eax
cmovne esp, dword [rdx]
xchg esi, eax
jmp 0x180272ef0
invalid
and eax, 0xa8958f13
cmp eax, 0x6339b72
jmp 0x1802730c6