Function at 0x18027e720
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov rax, rsi
add rax, 0xa8
mov al, byte [rax]
mov r8b, al
add r8b, 0xfc
movzx edx, r8b
inc rdx
xor ecx, ecx
sub r8b, 2
cmovb rcx, rdx
test rcx, rcx
je 0x18027e764
jmp 0x18027e755
sub rcx, 1
je 0x18027eb4b
jmp 0x18027ecfc
movzx eax, al
test eax, eax
je 0x18027e788
jmp 0x18027e76d
sub eax, 3
je 0x18027e84f
jmp 0x18027ecfc
mov rcx, rsi
call fcn.180273e10
jmp 0x18027ecfc
mov rdi, qword [rsi]
mov rax, rdi
add rax, 0x1c8
lock dec qword [rax]
sete al
test al, 1
jne 0x18027e7a1
jmp 0x18027e7e4
mov rcx, rdi
add rcx, 0x80
mov rax, rdi
add rax, 0x88
mov edx, 1
lock xadd qword [rax], rdx
call fcn.1802c54a0
movabs rcx, 0x200000000
lock or qword [rax + 0x510], rcx
add rdi, 0x100
mov rcx, rdi
call fcn.180407590
mov rax, qword [rsi]
lock dec qword [rax]
sete al
mov ecx, dword [0x180522be8]
and ecx, dword [0x180522bec]
imul ecx, ecx, 0x5fddd610
add ecx, 0xe1a81706
or ecx, 0x209932ad
cmp ecx, 0x794eb776
jb 0x18027ed05
mov ecx, dword [0x180522bf0]
add ecx, dword [0x180522bf4]
or ecx, 0x5c2bcbab
or ecx, 0x5dc70512
xor ecx, 0x3a8aec9f
cmp ecx, 0xa2f898e4
jb 0x18027ed05
test al, 1
jne 0x18027e77b
jmp 0x18027ecfc
mov rdi, rsi
add rdi, 0x30
mov rcx, rdi
call fcn.180406d20
cmp qword [rdi], 0
sete al
mov rcx, rsi
add rcx, 0x38
test al, 1
jne 0x18027e872
jmp 0x18027e887
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x18027e89e
call fcn.180275eb0
jmp 0x18027e89e
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
jne 0x18027e897
jmp 0x18027e89e
call fcn.180279770
jmp 0x18027e89e
mov r8, qword [rsi + 0x50]
mov eax, dword [str.PKa]
imul eax, dword [0x180522bfc]
add eax, 0x2d562ab6
mov ecx, 0xafecc608
xor edx, edx
div ecx
imul eax, eax, 0xaea55302
cmp eax, 0x1675c457
jb 0x18027ed16
jmp 0x18027e8d0
mov eax, dword [0x180522c00]
and eax, dword [0x180522c04]
and eax, 0xe962fa1b
mov ecx, 0xb3e73ce8
xor edx, edx
div ecx
xor eax, 0x3be935bd
cmp r8, 0
sete cl
cmp eax, 0x2a6b4080
jb 0x18027e8d0
jmp 0x18027e8ff
mov eax, dword [0x180522c08]
and eax, dword [0x180522c0c]
sub eax, 0x2a05b3ea
and eax, 0x20772eb8
mov r8d, 0x3aff163a
xor edx, edx
div r8d
cmp eax, 0x1eda296a
jae 0x18027ed27
jmp 0x18027e92d
mov eax, dword [0x180522c10]
add eax, dword [0x180522c14]
sub eax, 0xc75c27e1
sub eax, 0x1c10a61e
mov r8d, 0xa83bdfab
xor edx, edx
div r8d
cmp eax, 0x42a89301
je 0x18027e92d
test cl, 1
jne 0x18027e97d
jmp 0x18027e95c
mov rax, qword [rsi + 0x78]
cmp rax, 0
sete cl
test cl, 1
jne 0x18027e97d
jmp 0x18027e96e
mov rcx, qword [rsi + 0x80]
add rax, 0x18
call qword [rax]
jmp 0x18027e97d
mov rax, rsi
add rax, 8
mov rdi, qword [rax]
movabs rax, 0x8000000000000005
cmp rdi, rax
je 0x18027eae0
movabs rcx, 0x8000000000000000
mov rax, rdi
xor rax, rcx
mov rcx, rax
sub rcx, 5
mov ecx, 5
cmovb rcx, rax
mov eax, dword [0x180522c18]
imul eax, dword [0x180522c1c]
and eax, 0x5b234c9b
mov r8d, 0x736a3339
xor edx, edx
div r8d
mov r8d, 0xcb484c16
xor edx, edx
div r8d
cmp eax, 0xb6983a3c
jae 0x18027ed34
jmp 0x18027e9ef
mov eax, dword [0x180522c20]
or eax, dword [0x180522c24]
add eax, 0xf03c313
imul eax, eax, 0x8bec0b9a
mov r8d, 0x87cc3aaf
xor edx, edx
div r8d
cmp eax, 0x6340337
je 0x18027e9ef
mov eax, 8
mov rdx, rcx
sub rdx, 4
jb 0x18027ea54
jmp 0x18027ea28
sub rcx, 4
jne 0x18027ea65
jmp 0x18027ea30
mov rax, rsi
add rax, 0x10
mov rdi, qword [rax]
mov eax, 0x10
movabs rcx, 0x8000000000000002
cmp rdi, rcx
jl 0x18027eae0
jmp 0x18027ea65
mov rax, rsi
add rax, 0x10
mov rdi, qword [rax]
mov eax, 0x10
jmp 0x18027ea65
cmp rdi, 0
je 0x18027eae0
mov rcx, rsi
add rcx, rax
add rcx, 8
mov rbx, qword [rcx]
mov eax, dword [0x180522c28]
xor eax, dword [0x180522c2c]
or eax, 0xf386107a
sub eax, 0x168d5937
sub eax, 0xc60f1dff
cmp eax, 0xf2f1c7c7
je 0x18027ed45
mov eax, dword [0x180522c30]
xor eax, dword [0x180522c34]
imul eax, eax, 0xe7dc4fdb
mov ecx, 0x18dc3e0e
xor edx, edx
div ecx
mov ebp, eax
or ebp, 0x5c7a53b4
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1802cbf20
cmp ebp, 0x893f89bd
je 0x18027ed45
jmp 0x18027eae0
mov rdi, qword [rsi]
mov rax, rdi
add rax, 0x1c8
lock dec qword [rax]
sete al
test al, 1
jne 0x18027eaf9
jmp 0x18027eb34
mov rcx, rdi
sub rcx, 0xffffffffffffff80
mov edx, 1
lock xadd qword [rdi + 0x88], rdx
call fcn.1802c54a0
movabs rcx, 0x200000000
lock or qword [rax + 0x510], rcx
add rdi, 0x100
mov rcx, rdi
call fcn.180407590
mov rax, qword [rsi]
lock dec qword [rax]
sete al
test al, 1
jne 0x18027e77b
jmp 0x18027ecfc
mov eax, dword [0x180522c38]
and eax, dword [0x180522c3c]
and eax, 0x792159ec
xor eax, 0xa13e6680
xor eax, 0x6b21b259
cmp eax, 0x221f13d6
jb 0x18027ed67
jmp 0x18027eb73
mov ecx, dword [0x180522c40]
and ecx, dword [0x180522c44]
sub ecx, 0xb1a11a1a
or ecx, 0xe8835b0b
sub ecx, 0x1edcaf2b
mov rax, qword [rsi]
cmp ecx, 0xd090944a
jae 0x18027eb73
jmp 0x18027eb9e
cmp rax, 0
sete cl
mov eax, dword [0x180522c48]
xor eax, dword [0x180522c4c]
and eax, 0x1fb39d59
or eax, 0x70370960
mov r8d, 0xfbccc0a8
xor edx, edx
div r8d
cmp eax, 0x2a6bfb85
ja 0x18027ed74
jmp 0x18027ebd3
mov eax, dword [str._5_]
add eax, dword [0x180522c54]
xor eax, 0x8d56c74d
xor eax, 0x33d99309
add eax, 0x340877b2
cmp eax, 0xf2646e86
ja 0x18027ebd3
test cl, 1
jne 0x18027ecfc
jmp 0x18027ec00
mov rax, rsi
add rax, 8
mov rdi, qword [rax]
mov rsi, qword [rsi + 0x10]
cmp rdi, 0
je 0x18027ecfc
mov eax, dword [0x180522c58]
sub eax, dword [0x180522c5c]
mov ecx, 0xee3b7869
xor edx, edx
div ecx
xor eax, 0x2d0f4da8
imul eax, eax, 0xdb3bd826
cmp eax, 0x327d7f4e
je 0x18027ed81
jmp 0x18027ec45
mov eax, dword [0x180522c60]
xor edx, edx
div dword [0x180522c64]
or eax, 0x2c65f6da
mov ecx, 0x47c1b59e
xor edx, edx
div ecx
add eax, 0xcc2d6ab2
cmp rsi, 0
setne cl
cmp eax, 0xdbedb8c0
ja 0x18027ec45
jmp 0x18027ec76
mov eax, dword [0x180522c68]
imul eax, dword [0x180522c6c]
mov ecx, 0x90bba8e
xor edx, edx
div ecx
add eax, 0xb748f8d8
sub eax, 0xbe6451d2
cmp eax, 0xf80a14d
jbe 0x18027ed8e
mov eax, dword [0x180522c70]
xor eax, dword [0x180522c74]
or eax, 0xbb5a8205
xor eax, 0x7007953e
mov ecx, 0x8c4193d6
xor edx, edx
div ecx
mov rdx, qword [rsi]
cmp eax, 0x98e2b967
ja 0x18027ed8e
jmp 0x18027ecd0
cmp rdx, 0
je 0x18027ecdd
mov rcx, rdi
call rdx
jmp 0x18027ecdd
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
cmp rdx, 0
sete al
test al, 1
jne 0x18027ecfc
jmp 0x18027ecf2
mov rcx, rdi
call fcn.1802cbf20
jmp 0x18027ecfc
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
ret
scasd eax, dword [rdi]
sal byte [rdx], cl
or edi, esp
scasd eax, dword [rdi]
sar dword [rsi - 0x6f], cl
cwde
jmp 0x18027e818
sub qword [r13 + 0x6abbbaec], r15
cmp bl, bl
push rdi
wait
invalid
xor ah, byte [rbx + 0x7f]
lodsd eax, dword [rsi]
invalid
sub bl, ah
je 0x18027ecdd
jg 0x18027ed7b
pop rdi
push rbp
xchg ecx, eax
mov dl, 0x43
invalid
out dx, al
jo 0x18027ed6f
mov al, byte [rdx + 0x33ae2d32]
outsb dx, byte [rsi]
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1802cbf20
jmp 0x18027ea9e
mov r13b, 0x7a
invalid
jmp 0x18027eb71
adc byte [rdx + rbp + 0x4f490de7], cl
cmp ch, cl
push rax
invalid
imul edx, dword [rbp + 0x55], 0x1d
adc byte [rbp - 0x4a16314c], dh
invalid
cmp eax, 0x80bb3f9f
sub rax, 0xffffffffff06e92f
invalid