Function at 0x180200d80
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
mov al, byte [rsi + 0xa8]
mov dl, al
add dl, 0xfc
movzx r8d, dl
inc r8
xor ecx, ecx
sub dl, 2
cmovb rcx, r8
test rcx, rcx
je 0x180200dbe
jmp 0x180200dab
sub rcx, 1
je 0x180201342
jmp 0x180200db7
add rsp, 0x28
pop rdi
pop rsi
ret
movzx eax, al
test eax, eax
je 0x180200ddc
jmp 0x180200dc7
sub eax, 3
je 0x180200ef7
jmp 0x180200db7
mov rcx, rsi
call fcn.180273e10
jmp 0x180200db7
mov eax, dword [0x18051ab58]
imul eax, dword [0x18051ab5c]
and eax, 0x957d649e
xor eax, 0x24d0d76a
sub eax, 0xc663af48
cmp eax, 0x1881c8ea
jb 0x1802014a5
jmp 0x180200e05
mov eax, dword [0x18051ab60]
xor eax, dword [0x18051ab64]
mov ecx, 0xf8a7df19
xor edx, edx
div ecx
xor eax, 0x538ba10a
sub eax, 0xf2c1f6c4
cmp eax, 0x4e2f71cf
je 0x180200e05
jmp 0x180200e2d
mov rdi, qword [rsi]
mov rcx, 0xffffffffffffffff
lock xadd qword [rdi + 0x1c8], rcx
mov eax, dword [0x18051ab68]
and eax, dword [0x18051ab6c]
add eax, 0xe86c87a5
mov r8d, 0x5cd93521
xor edx, edx
div r8d
or eax, 0xaf399cc3
cmp eax, 0x6e7ee6c
jb 0x1802014b2
mov edx, dword [0x18051ab70]
and edx, dword [0x18051ab74]
and edx, 0xde59b6cd
or edx, 0x3e3ec874
or edx, 0x77dffa62
cmp rcx, 1
sete al
cmp edx, 0x79b1a4ef
je 0x1802014b2
test al, 1
jne 0x180200ea3
jmp 0x180200ee0
mov rcx, rdi
sub rcx, 0xffffffffffffff80
mov edx, 1
lock xadd qword [rdi + 0x88], rdx
call fcn.1802c54a0
add rax, 0x510
movabs rcx, 0x200000000
lock or qword [rax], rcx
add rdi, 0x100
mov rcx, rdi
call fcn.180407590
mov rax, qword [rsi]
lock dec qword [rax]
sete al
test al, 1
jne 0x180200dd2
jmp 0x180200db7
mov eax, dword [0x18051ab78]
add eax, dword [0x18051ab7c]
mov ecx, 0xc234ee1e
xor edx, edx
div ecx
and eax, 0x322ae2e1
imul eax, eax, 0x31495c02
cmp eax, 0xfac041b5
jae 0x1802014c3
mov eax, dword [0x18051ab80]
imul eax, dword [0x18051ab84]
sub eax, 0x11443a45
imul eax, eax, 0x300f0b54
mov ecx, 0x5a9457f9
xor edx, edx
div ecx
mov rdi, rsi
add rdi, 0x30
cmp eax, 0xa6eb5c82
ja 0x1802014c3
jmp 0x180200f57
mov rcx, rdi
call fcn.180406d20
cmp qword [rdi], 0
sete r8b
mov eax, dword [0x18051ab88]
xor eax, dword [str.___W]
mov ecx, 0x3bdbe078
xor edx, edx
div ecx
imul eax, eax, 0x69a5152e
and eax, 0x9ad37aeb
cmp eax, 0xc3ecc0fa
ja 0x1802014d0
jmp 0x180200f94
mov eax, dword [0x18051ab90]
add eax, dword [0x18051ab94]
imul eax, eax, 0x90ed3b91
xor eax, 0x795a75ba
and eax, 0x95280e31
mov rcx, rsi
add rcx, 0x38
cmp eax, 0xf5db6534
ja 0x180200f94
test r8b, 1
jne 0x180200fc6
jmp 0x180200fe3
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
jne 0x180200fd9
jmp 0x18020109a
call fcn.180275eb0
jmp 0x18020109a
mov rax, qword [rcx]
lock dec qword [rax]
sete r8b
mov eax, dword [0x18051ab98]
sub eax, dword [0x18051ab9c]
sub eax, 0x4e4f0687
xor eax, 0x8efb2234
imul eax, eax, 0xb749172
cmp eax, 0x7777d4ce
jbe 0x1802014e1
jmp 0x180201017
mov eax, dword [0x18051aba0]
sub eax, dword [0x18051aba4]
imul eax, eax, 0x30824ba
xor eax, 0x1dfeb314
mov r9d, 0x8578e9ce
xor edx, edx
div r9d
cmp eax, 0xa047257e
ja 0x180201017
test r8b, 1
jne 0x180201048
jmp 0x18020109a
call fcn.180279770
mov eax, dword [0x18051aba8]
add eax, dword [0x18051abac]
xor eax, 0xa172c161
add eax, 0xcc85d80e
and eax, 0x61b3454f
cmp eax, 0xa535b6aa
je 0x1802014ee
jmp 0x180201075
mov eax, dword [0x18051abb0]
xor eax, dword [0x18051abb4]
or eax, 0x56f9eb5a
add eax, 0x8d33934c
imul eax, eax, 0x3edce6e1
cmp eax, 0x6009f6b6
je 0x180201075
jmp 0x18020109a
mov eax, dword [0x18051abb8]
and eax, dword [0x18051abbc]
add eax, 0x270463e8
imul eax, eax, 0xb8b29ad2
and eax, 0x934780c3
cmp eax, 0xca38b106
jae 0x1802014fb
jmp 0x1802010c3
mov eax, dword [0x18051abc0]
and eax, dword [0x18051abc4]
add eax, 0x2db01f9d
sub eax, 0xd38b4d51
imul ecx, eax, 0xb500a85c
mov rax, qword [rsi + 0x50]
cmp ecx, 0x8300d72d
jbe 0x1802010c3
jmp 0x1802010ed
cmp rax, 0
sete al
test al, 1
jne 0x18020111b
jmp 0x1802010fa
mov rax, qword [rsi + 0x78]
cmp rax, 0
sete cl
test cl, 1
jne 0x18020111b
jmp 0x18020110c
mov rcx, qword [rsi + 0x80]
add rax, 0x18
call qword [rax]
jmp 0x18020111b
mov rdx, qword [rsi + 8]
movabs rax, 0x8000000000000005
cmp rdx, rax
sete al
test al, 1
jne 0x180201271
jmp 0x180201139
movabs rcx, 0x8000000000000000
mov rax, rdx
xor rax, rcx
mov rcx, rax
sub rcx, 5
mov ecx, 5
cmovb rcx, rax
mov eax, 8
mov r8, rcx
sub r8, 4
jb 0x18020119f
jmp 0x180201169
sub rcx, 4
jne 0x180201203
jmp 0x180201175
mov rax, rsi
add rax, 0x10
mov rdx, qword [rax]
movabs rax, 0x8000000000000002
cmp rdx, rax
setl cl
mov eax, 0x10
test cl, 1
jne 0x180201271
jmp 0x180201203
mov eax, dword [0x18051abc8]
xor edx, edx
div dword [0x18051abcc]
xor eax, 0x7c7505d3
xor eax, 0xcde668bd
sub eax, 0x375191e4
cmp eax, 0xf8ed9f7e
jae 0x180201508
jmp 0x1802011c9
mov eax, dword [str.C__t_v]
imul eax, dword [0x18051abd4]
mov ecx, 0x3d874992
xor edx, edx
div ecx
or eax, 0x9a9cd5c7
sub eax, 0x7d1bcada
mov rcx, rsi
add rcx, 0x10
cmp eax, 0x527d7760
ja 0x1802011c9
jmp 0x1802011f9
mov rdx, qword [rcx]
mov eax, 0x10
jmp 0x180201203
cmp rdx, 0
je 0x180201271
mov rcx, qword [rsi + rax + 8]
mov r8d, 1
call fcn.1802cbf20
mov eax, dword [0x18051abd8]
and eax, dword [0x18051abdc]
mov ecx, 0x7678288
xor edx, edx
div ecx
imul eax, eax, 0x5160ec3d
add eax, 0xe65bdeac
cmp eax, 0x54b18301
jbe 0x180201519
mov eax, dword [0x18051abe0]
imul eax, dword [0x18051abe4]
mov ecx, 0x4b8a41d8
xor edx, edx
div ecx
add eax, 0x9f25f47b
sub eax, 0x28530e27
cmp eax, 0x44b573d2
jb 0x180201519
jmp 0x180201271
mov rdi, qword [rsi]
mov rax, rdi
add rax, 0x1c8
lock dec qword [rax]
sete al
test al, 1
jne 0x18020128d
jmp 0x18020132b
mov rcx, rdi
sub rcx, 0xffffffffffffff80
mov edx, 1
lock xadd qword [rdi + 0x88], rdx
call fcn.1802c54a0
mov rcx, rax
mov eax, dword [0x18051abe8]
imul eax, dword [0x18051abec]
or eax, 0xff776d3e
imul eax, eax, 0x8b3b0e7d
mov r8d, 0xfb093407
xor edx, edx
div r8d
cmp eax, 0x8d9dbd46
jae 0x18020152a
jmp 0x1802012da
mov eax, dword [0x18051abf0]
add eax, dword [0x18051abf4]
or eax, 0x394b08e0
mov r8d, 0xd86024de
xor edx, edx
div r8d
add eax, 0x88135103
mov rdx, rcx
add rdx, 0x510
cmp eax, 0x5ac60150
jb 0x1802012da
jmp 0x18020130e
movabs rax, 0x200000000
lock or qword [rdx], rax
add rdi, 0x100
mov rcx, rdi
call fcn.180407590
mov rax, qword [rsi]
lock dec qword [rax]
sete al
test al, 1
jne 0x180200dd2
jmp 0x180200db7
cmp qword [rsi], 0
sete al
test al, 1
jne 0x180200db7
jmp 0x180201353
mov rax, rsi
add rax, 8
mov rdi, qword [rax]
mov rsi, qword [rsi + 0x10]
mov eax, dword [0x18051abf8]
add eax, dword [0x18051abfc]
add eax, 0xc66dce1e
xor eax, 0x9475f9e8
add eax, 0x39d1b3e1
cmp eax, 0x1a521311
jbe 0x180201537
mov eax, dword [0x18051ac00]
xor edx, edx
div dword [0x18051ac04]
xor eax, 0x4b9ded0
and eax, 0x7a21b777
and eax, 0xe91526fe
cmp rdi, 0
sete cl
cmp eax, 0x935d206f
ja 0x180201537
test cl, 1
jne 0x180200db7
jmp 0x1802013c1
mov eax, dword [0x18051ac08]
imul eax, dword [0x18051ac0c]
sub eax, 0x9e05ddc4
mov ecx, 0x365430e
xor edx, edx
div ecx
or eax, 0x672b7570
cmp eax, 0xd52f8114
ja 0x180201548
jmp 0x1802013ee
mov eax, dword [0x18051ac10]
or eax, dword [0x18051ac14]
imul eax, eax, 0x8980872a
imul ecx, eax, 0xf59410f6
sub ecx, 0x3ce81f2e
mov rax, qword [rsi]
cmp ecx, 0x3f292e63
je 0x1802013ee
jmp 0x180201419
cmp rax, 0
sete cl
mov edx, dword [0x18051ac18]
and edx, dword [0x18051ac1c]
add edx, 0x951c7c53
xor edx, 0x76bd9d98
or edx, 0x40e05c97
cmp edx, 0xf97191c6
jae 0x180201555
jmp 0x18020144c
mov edx, dword [0x18051ac20]
and edx, dword [0x18051ac24]
sub edx, 0x98472471
imul edx, edx, 0x8e35915f
and edx, 0xc967b9b2
cmp edx, 0x6144063
jbe 0x18020144c
test cl, 1
jne 0x180201480
jmp 0x180201479
add byte [rax - 0x77], cl
stc
mov rcx, rdi
call rax
jmp 0x180201480
mov rax, rsi
add rax, 8
mov rdx, qword [rax]
mov r8, qword [rsi + 0x10]
cmp rdx, 0
je 0x180200db7
mov rcx, rdi
mov ecx, edi
call fcn.1802cbf20
jmp 0x180200db7
jle 0x180201499
scasd eax, dword [rdi]
mov cl, 0x8b
sti
xchg ebx, eax
jmp 0x180200e03
or byte [rcx - 0x338d4a40], bl
jb 0x180201478
jmp 0x169aa24b0
jb 0x1802014f6
lodsd eax, dword [rsi]
mov eax, 0x8ea60b18
jmp 0x180200f22
pop rax
std
xor byte [rsi - 0x1ce800d1], al
invalid
fmul dword [rsi]
test byte cs:[r8 + 0x27e9c766], r11b
sti
invalid
movsd dword [rdi], dword [rsi]
int1
pop rbp
sar byte [rsp + rbp*2], 0xaa
jmp 0x180201073
jmp 0x180201073
call 0x173af46fa
leave
sub al, 0x2b
jmp 0x1802010c1
invalid
stosb byte [rdi], al
jb 0x180201539
in al, dx
sub dword [rdi], 0xfffffff8
cmp byte [rdi - 0x161de680], al
sbb bh, ch
invalid
test eax, 0x1678d16a
mov bh, 0x18
add ecx, ebp
movabs eax, dword [0x390a8aa90bfffffd]
sbb bl, dh
stosd dword [rdi], eax
or ebp, dword [rcx + 0x18390a8a]
mov cl, byte [rdx]
cmp dword [rax], ebx
rep stosd dword [rdi], eax
invalid
cmp dh, cl
pop rsp
xchg ebx, eax
lodsb al, byte [rsi]
jmp 0x1802013ec
or dword [rax], edi
imul esi, ecx, 0xd393bad5
jmp 0x18020144a