Function at 0x180274720
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, qword [rcx]
mov eax, dword [0x180521e60]
add eax, dword [0x180521e64]
mov ecx, 0x9e7e7700
xor edx, edx
div ecx
sub eax, 0xddbd34a4
xor eax, 0x9c83f42c
cmp eax, 0x9f93fcea
je 0x180274cfe
mov eax, dword [0x180521e68]
add eax, dword [0x180521e6c]
add eax, 0x10a2b45e
mov ecx, 0xb32a862a
xor edx, edx
div ecx
xor eax, 0xc044b1e9
mov r14, rsi
add r14, 0x10
mov rcx, rsi
add rcx, 0x50
cmp eax, 0x999edf2d
jbe 0x180274cfe
jmp 0x180274792
mov rax, qword [rcx]
cmp rax, 0
je 0x180274819
lock dec qword [rax]
sete al
jmp 0x1802747a4
test al, 1
jne 0x1802747aa
jmp 0x180274819
mov rdi, qword [rcx]
mov r15, rsi
add r15, 0x58
mov eax, dword [0x180521e70]
sub eax, dword [0x180521e74]
or eax, 0xaa1016ab
or eax, 0xb08549f8
imul eax, eax, 0x39da5e6f
cmp eax, 0x79faa4f2
jb 0x180274d0b
jmp 0x1802747dd
mov eax, dword [str.o:_]
xor edx, edx
div dword [0x180521e7c]
mov ecx, 0x23935cd
xor edx, edx
div ecx
mov ebx, eax
xor ebx, 0x9ba6d0e4
sub ebx, 0x12345603
mov rdx, qword [r15]
mov rcx, rdi
call fcn.1802732f0
cmp ebx, 0x6f0c4ab0
jbe 0x1802747dd
jmp 0x180274817
jmp 0x180274819
mov rcx, rsi
add rcx, 0x60
mov rax, qword [rcx]
cmp rax, 0
je 0x1802748a8
mov r8, 0xffffffffffffffff
lock xadd qword [rax], r8
mov eax, dword [0x180521e80]
xor eax, dword [0x180521e84]
add eax, 0x956fb39
add eax, 0x1629a82a
and eax, 0x9ddf7037
cmp eax, 0xa44e10f6
jae 0x180274d27
jmp 0x18027485d
mov eax, dword [0x180521e88]
and eax, dword [0x180521e8c]
sub eax, 0x570a8ef2
imul eax, eax, 0xc09c58d7
mov r9d, 0x96238eee
xor edx, edx
div r9d
cmp r8, 1
sete dl
cmp eax, 0xf83e92ba
jae 0x18027485d
jmp 0x18027488f
test dl, 1
jne 0x180274896
jmp 0x1802748a8
mov rcx, qword [rcx]
mov rax, rsi
add rax, 0x68
mov rdx, qword [rax]
call fcn.180273150
mov eax, dword [0x180521e90]
sub eax, dword [0x180521e94]
mov ecx, 0x48d86ae2
xor edx, edx
div ecx
sub eax, 0xa57ec781
or eax, 0xdb465f20
cmp eax, 0x244df910
jb 0x180274d34
jmp 0x1802748d4
mov eax, dword [0x180521e98]
imul eax, dword [0x180521e9c]
or eax, 0x6d728c47
imul eax, eax, 0x93f906c3
add eax, 0x9d25608d
cmp eax, 0x1b4e688b
je 0x1802748d4
jmp 0x1802748fa
mov rax, qword [r14]
lock dec qword [rax]
sete al
test al, 1
je 0x18027495c
mov rcx, qword [r14]
call fcn.180275380
mov eax, dword [0x180521ea0]
and eax, dword [0x180521ea4]
xor eax, 0x60c71194
and eax, 0xaeaf6a91
add eax, 0x47fcd4db
cmp eax, 0x5fce03e2
jb 0x180274d45
jmp 0x180274938
mov eax, dword [0x180521ea8]
sub eax, dword [0x180521eac]
sub eax, 0x4e24b3dd
sub eax, 0x463e6813
sub eax, 0x66d8c770
cmp eax, 0x42fabbad
jbe 0x180274938
jmp 0x18027495c
mov rcx, rsi
add rcx, 0x70
mov rax, qword [rcx]
cmp rax, 0
je 0x1802749d9
lock dec qword [rax]
sete r8b
jmp 0x180274976
mov eax, dword [0x180521eb0]
xor eax, dword [0x180521eb4]
add eax, 0x87502bc
xor eax, 0x4e8dadb5
imul eax, eax, 0x2f89451d
cmp eax, 0xe609565e
jb 0x180274d56
mov eax, dword [0x180521eb8]
and eax, dword [0x180521ebc]
or eax, 0xf7c777c0
and eax, 0xd83bed6f
mov r9d, 0x2598f703
xor edx, edx
div r9d
cmp eax, 0xc4426675
jae 0x180274d56
test r8b, 1
jne 0x1802749d1
jmp 0x1802749d9
mov rcx, qword [rcx]
call fcn.180274340
mov rax, rsi
add rax, 0x18
mov rcx, qword [rax]
lock dec qword [rcx]
sete cl
test cl, 1
je 0x180274a47
mov rcx, qword [rax]
call fcn.1802760f0
mov eax, dword [0x180521ec0]
xor edx, edx
div dword [0x180521ec4]
imul eax, eax, 0x7bb64d0e
xor eax, 0x85d1ae60
sub eax, 0xda9e084f
cmp eax, 0x7e048a56
jb 0x180274d67
jmp 0x180274a22
mov eax, dword [0x180521ec8]
add eax, dword [0x180521ecc]
imul eax, eax, 0xf1e8c5ef
and eax, 0x6f12bc01
or eax, 0x90516d9c
cmp eax, 0x68e01f0b
jbe 0x180274a22
jmp 0x180274a47
mov rcx, rsi
add rcx, 0x20
mov rax, qword [rsi + 0x20]
lock dec qword [rax]
sete r8b
jmp 0x180274a5c
mov eax, dword [0x180521ed0]
add eax, dword [0x180521ed4]
sub eax, 0x4a3ca28c
imul eax, eax, 0xbf569291
xor eax, 0x770d5685
cmp eax, 0x4ae54283
je 0x180274d74
jmp 0x180274a85
mov eax, dword [0x180521ed8]
xor eax, dword [0x180521edc]
mov r9d, 0xddc6291f
xor edx, edx
div r9d
xor eax, 0x20b6615c
xor eax, 0xfbc6d9f6
cmp eax, 0x40df1f7a
jbe 0x180274a85
test r8b, 1
jne 0x180274ab5
jmp 0x180274abf
mov rcx, qword [rcx]
call fcn.180278f80
jmp 0x180274abf
mov rax, rsi
add rax, 0x28
mov rcx, qword [rsi + 0x28]
lock dec qword [rcx]
sete cl
test cl, 1
jne 0x180274ad8
jmp 0x180274ae2
mov rcx, qword [rax]
call fcn.1802774f0
jmp 0x180274ae2
mov rax, rsi
add rax, 0x30
mov rcx, qword [rax]
lock dec qword [rcx]
sete cl
test cl, 1
jne 0x180274afa
jmp 0x180274b04
mov rcx, qword [rax]
call fcn.1802757b0
jmp 0x180274b04
mov eax, dword [0x180521ee0]
sub eax, dword [0x180521ee4]
and eax, 0x7ed20964
xor eax, 0xba611dba
imul eax, eax, 0x75c6c873
cmp eax, 0xb27defff
jae 0x180274d85
jmp 0x180274b2d
mov eax, dword [0x180521ee8]
imul eax, dword [0x180521eec]
imul eax, eax, 0xceadbe89
sub eax, 0x866f33a7
add eax, 0x118ad362
mov rdi, rsi
add rdi, 0x38
cmp eax, 0x50f98309
je 0x180274b2d
jmp 0x180274b5a
mov rax, qword [rdi]
lock dec qword [rax]
sete al
test al, 1
jne 0x180274b6a
jmp 0x180274bc8
mov eax, dword [0x180521ef0]
xor eax, dword [0x180521ef4]
xor eax, 0x53026959
sub eax, 0xe25d2b63
xor eax, 0x8fd266d6
cmp eax, 0xfaa61e43
je 0x180274d96
jmp 0x180274b92
mov eax, dword [0x180521ef8]
xor edx, edx
div dword [0x180521efc]
mov ebx, eax
or ebx, 0x88c2d331
add ebx, 0xa82c1b74
sub ebx, 0x410aae98
mov rcx, rdi
call fcn.180274f50
cmp ebx, 0xa00e6bfa
jb 0x180274b92
jmp 0x180274bc6
jmp 0x180274bc8
mov rcx, rsi
add rcx, 0x40
mov eax, dword [0x180521f00]
xor eax, dword [0x180521f04]
mov r8d, 0x3e4242ec
xor edx, edx
div r8d
mov r8d, 0xbba0c84c
xor edx, edx
div r8d
add eax, 0x7ad25b4f
cmp eax, 0x951facae
jae 0x180274daf
jmp 0x180274c03
mov eax, dword [0x180521f08]
sub eax, dword [0x180521f0c]
sub eax, 0xfda3c85f
imul edx, eax, 0x5ec3dbda
add edx, 0xfc53ff1f
mov rax, qword [rcx]
lock dec qword [rax]
sete al
cmp edx, 0xffbabe05
jae 0x180274c03
jmp 0x180274c34
test al, 1
jne 0x180274c3a
jmp 0x180274c41
call fcn.180277600
jmp 0x180274c41
mov rax, rsi
add rax, 0x48
mov rcx, qword [rsi + 0x48]
lock dec qword [rcx]
sete cl
test cl, 1
jne 0x180274c5a
jmp 0x180274c64
mov rcx, qword [rax]
call fcn.180276130
jmp 0x180274c64
mov rax, 0xffffffffffffffff
cmp rsi, rax
sete cl
mov eax, dword [0x180521f10]
add eax, dword [0x180521f14]
mov r8d, 0xee61d049
xor edx, edx
div r8d
and eax, 0x12ae1c7c
xor eax, 0x8b1948d2
cmp eax, 0x8a03dde4
jbe 0x180274dc7
jmp 0x180274c9f
mov eax, dword [0x180521f18]
imul eax, dword [0x180521f1c]
and eax, 0x84bc1a7e
sub eax, 0x1b8c4eb1
or eax, 0x8277bcd7
cmp eax, 0xf6a0e4e9
ja 0x180274c9f
test cl, 1
jne 0x180274cf2
jmp 0x180274cc9
mov rax, rsi
add rax, 8
lock dec qword [rax]
sete al
test al, 1
jne 0x180274cdd
jmp 0x180274cf2
mov rcx, rsi
mov edx, 0x80
mov r8d, 8
call fcn.1802cbf20
jmp 0x180274cf2
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
int 0xf9
sahf
pop rax
invalid
fnstsw word [rsi - 0x1477ec9e]
sbb al, 0x94
invalid
mov rdx, qword [r15]
mov rcx, rdi
call fcn.1802732f0
jmp 0x1802747db
sub dl, byte [rsi + 0x5b]
adc al, 0x8a
push 0xffffffffffffffeb
jmp 0x18027485b
scasd eax, dword [rdi]
clc
add eax, 0xcec18914
sub dh, byte [rdx + rcx - 0xb]
stosd dword [rdi], eax
jmp 0x1802748d2
clc
sbb eax, dword [rcx + rbx*2 + 0x13]
invalid
xchg ebp, eax
jp 0x180274d17
stc
fiadd word [rax]
cmpsd dword [rsi], dword [rdi]
bnd jge 0x180274d85
invalid
mov dh, 1
xor qword [r13 - 0x45], r14
invalid
invalid
outsb dx, byte [rsi]
movabs al, byte [0x5ae4db2b92e3e873]
shr cl, 0x95
std
invalid
invalid
or bl, byte [rcx + 0x5d3d56e5]
invalid
insd dword [rdi], dx
and dword [rax - 0x10], 0xffffffa6
clc
or ecx, dword [rdx]
jmp 0x180274c9d