Function at 0x1803865c0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rcx
mov rcx, rsi
call fcn.18063cdb0
mov rax, qword [rsi]
test rax, rax
je 0x18038665e
jmp 0x1803865de
sub rax, 1
je 0x180386730
jmp 0x1803865ea
mov rcx, rsi
add rcx, 8
mov eax, dword [0x18078d4a0]
sub eax, dword [0x18078d4a4]
add eax, 0xe9d47175
imul eax, eax, 0x5c911e08
xor eax, 0x461a1c32
cmp eax, 0x45868a9d
je 0x1803867c7
jmp 0x18038661a
mov eax, dword [0x18078d4a8]
xor eax, dword [0x18078d4ac]
sub eax, 0xf3f3388c
imul edx, eax, 0x21756f22
xor edx, 0xabfc425e
mov rax, qword [rcx]
lock dec qword [rax]
sete al
cmp edx, 0xc2e87e2f
je 0x18038661a
jmp 0x18038664b
test al, 1
jne 0x180386654
jmp 0x18038674e
call fcn.1804be730
jmp 0x18038674e
mov rcx, rsi
add rcx, 8
mov rax, qword [rcx]
mov r8, 0xffffffffffffffff
lock xadd qword [rax], r8
mov eax, dword [0x18078d4b0]
and eax, dword [0x18078d4b4]
or eax, 0xa0e2ca3b
mov r9d, 0xb5d154e0
xor edx, edx
div r9d
add eax, 0x90a9e15a
cmp eax, 0x39453098
je case.0x1803849f8.27
mov eax, dword [0x18078d4b8]
imul eax, dword [0x18078d4bc]
imul eax, eax, 0x858ebe0
imul edx, eax, 0x62401046
and edx, 0xae3ddf7d
cmp r8, 1
sete al
cmp edx, 0xf2837d09
jae case.0x1803849f8.27
test al, 1
jne 0x1803866d8
jmp 0x18038674e
mov eax, dword [0x18078d4c0]
and eax, dword [0x18078d4c4]
imul eax, eax, 0xf903ece0
xor eax, 0xd78271ae
or eax, 0x13ed92e1
cmp eax, 0xc8fdec73
je 0x1803867f0
jmp 0x180386701
mov eax, dword [0x18078d4c8]
mov edx, dword [0x18078d4cc]
imul eax, edx
imul rax, rax, 0x465ef24f
shr rax, 0x3d
add eax, 0x8415c8e7
cmp eax, 0xd8752b55
jae 0x180386701
jmp 0x180386729
call fcn.1804bab90
jmp 0x18038674e
mov rcx, rsi
add rcx, 8
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
jne 0x180386747
jmp 0x18038674e
call fcn.1804b80b0
jmp 0x18038674e
mov rax, rsi
add rax, 0x20
mov rax, qword [rax]
cmp rax, 0
je 0x1803867c0
mov eax, dword [0x18078d4d0]
and eax, dword [0x18078d4d4]
and eax, 0x629e2f71
xor eax, 0xd00ef5d0
add eax, 0xa4fe088f
cmp eax, 0x13629dbf
jbe 0x1803867fd
mov eax, dword [0x18078d4d8]
xor eax, dword [0x18078d4dc]
or eax, 0x4bf41456
sub eax, 0xc9bbc06d
imul ecx, eax, 0xe6793704
mov rax, rsi
add rax, 0x48
cmp ecx, 0xcca2f2aa
ja 0x1803867fd
jmp 0x1803867ad
mov rax, qword [rax]
cmp rax, 0
je 0x1803867c0
mov rcx, qword [rsi + 0x50]
mov rax, qword [rax + 0x18]
call rax
nop
add rsp, 0x20
pop rsi
ret
invalid
jge 0x180386826
call 0x1fc444d35
sbb ch, cl
add bh, bh
invalid
cmpsb byte [rsi], byte [rdi]
mov bh, 0x42
in al, 0x91
fistp qword [0x17faf515c]
cmp eax, 0xff76e954
cmp rcx, 0xc
cmp ecx, 0xc
cmovb rax, rcx
add rax, 0xfffffffffffffffe
mov rcx, rax
sub rcx, 8
ja case.0x180386849.1
lea rcx, [0x1806c4f38]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rcx, qword [rsi + 8]
mov eax, ecx
and eax, 3
add ecx, dword [rax - 0x77]
invalid
invalid
mov al, byte [rsi + 8]
cmp al, 0xa
sete cl
mov eax, dword [0x18078d510]
sub eax, dword [0x18078d514]
imul eax, eax, 0xc396167
or eax, 0x434d34cc
and eax, 0xb81d4d1
cmp eax, 0xa9f09a13
ja 0x180386f43
jmp 0x180386a0a
mov eax, dword [0x18078d518]
xor edx, edx
div dword [0x18078d51c]
mov r8d, 0xa167edf1
xor edx, edx
div r8d
sub eax, 0x1bed9a57
mov r8d, 0xeb72f9ec
xor edx, edx
div r8d
cmp eax, 0x7ba51547
jae 0x180386a0a
test cl, 1
jne 0x180386a44
jmp case.0x180386849.1
mov rcx, qword [rsi + 0x10]
mov eax, dword [0x18078d520]
xor edx, edx
div dword [0x18078d524]
or eax, 0xaaf06fc6
imul eax, eax, 0xa2aa513b
and eax, 0x28c1e618
cmp eax, 0x3bc0a360
ja 0x180386f54
jmp 0x180386a73
mov eax, dword [0x18078d530]
xor edx, edx
div dword [0x18078d534]
or eax, 0xc875dce7
sub eax, 0xc6313e35
and eax, 0x80d91b74
cmp eax, 0x23a16062
jae 0x180386f65
jmp 0x180386aee
mov eax, dword [0x18078d538]
imul eax, dword [0x18078d53c]
or eax, 0xb168720f
or eax, 0x3de10b3c
imul eax, eax, 0xa9712e50
mov r8, qword [rsi + 8]
cmp eax, 0x47873a42
jbe 0x180386aee
jmp 0x180386b18
movabs rax, 0x8000000000000000
mov rcx, r8
xor rcx, rax
mov eax, dword [0x18078d540]
xor eax, dword [0x18078d544]
imul eax, eax, 0x963c0364
and eax, 0xf3ddd3b2
add eax, 0x242e7896
cmp eax, 0x8316eeb7
je 0x180386f76
mov eax, dword [0x18078d548]
add eax, dword [0x18078d54c]
mov r9d, 0x3d45856b
xor edx, edx
div r9d
xor eax, 0x8fa8cca3
and eax, 0xe12de00f
mov rdx, rcx
sub rdx, 5
mov edx, 5
cmovb rdx, rcx
cmp eax, 0x887e8530
je 0x180386f76
mov ecx, 8
mov rax, rdx
sub rax, 4
jb 0x180386c27
jmp 0x180386b9f
sub rdx, 4
jne 0x180386c85
jmp 0x180386bab
mov rax, rsi
add rax, 0x10
mov r8, qword [rax]
mov eax, dword [0x18078d550]
sub eax, dword [0x18078d554]
xor eax, 0x98726115
sub eax, 0xac454cee
imul eax, eax, 0xb4f7d31f
cmp eax, 0xe7c63948
je 0x180386f87
mov eax, dword [0x18078d558]
imul eax, dword [0x18078d55c]
sub eax, 0xd0a00922
and eax, 0x47d6be40
mov ecx, 0x7b72aad2
xor edx, edx
div ecx
movabs rcx, 0x8000000000000002
cmp r8, rcx
setl dl
cmp eax, 0xa5c33e90
ja 0x180386f87
mov ecx, 0x10
test dl, 1
jne case.0x180386849.1
jmp 0x180386c85
mov rax, rsi
add rax, 0x10
mov r8, qword [rax]
mov eax, dword [0x18078d560]
or eax, dword [0x18078d564]
imul eax, eax, 0xa9101fe5
xor eax, 0x5aad47fa
xor eax, 0xbbd938f3
cmp eax, 0xa75bf4a1
je 0x180386f98
jmp 0x180386c5a
mov eax, dword [0x18078d568]
xor edx, edx
div dword [0x18078d56c]
xor eax, 0xaae55132
add eax, 0xf4ec7f
and eax, 0xf627215c
cmp eax, 0xb9d8dc11
jae 0x180386c5a
mov ecx, 0x10
jmp 0x180386c85
mov eax, dword [0x18078d570]
imul eax, dword [0x18078d574]
and eax, 0x7aea3474
sub eax, 0x94415a5
imul eax, eax, 0x7c61ada
cmp eax, 0xff85379b
jae 0x180386fa9
mov edx, dword [0x18078d578]
sub edx, dword [0x18078d57c]
and edx, 0x5ae5f915
xor edx, 0x39d359c1
xor edx, 0x63cac133
cmp r8, 0
sete al
cmp edx, 0x9bb2f420
jae 0x180386fa9
test al, 1
jne case.0x180386849.1
jmp 0x180386ce8
mov eax, dword [0x18078d580]
add eax, dword [0x18078d584]
imul eax, eax, 0x1f6f3080
xor eax, 0xee436062
sub eax, 0xa49ef5c1
cmp eax, 0x48f4f347
jbe 0x180386fba
mov eax, dword [0x18078d588]
imul eax, dword [0x18078d58c]
xor eax, 0x1e512101
mov r9d, 0x26d5a51b
xor edx, edx
div r9d
add eax, 0xe39415a3
mov r9, rsi
add r9, rcx
cmp eax, 0xd737bd9b
je 0x180386fba
jmp 0x180386d44
mov eax, dword [0x18078d590]
xor edx, edx
div dword [0x18078d594]
and eax, 0xd8fc3bd0
xor eax, 0xef5a4d19
xor eax, 0xfca05a34
cmp eax, 0x90a6071e
jae 0x180386fcb
invalid
jmp 0x180386d6e
mov rax, rsi
add rax, 8
mov r8, qword [rax]
movabs rax, 0x8000000000000000
mov rcx, r8
xor rcx, rax
cmp rcx, 5
seta al
cmp rcx, 2
sete cl
or al, cl
test al, 1
jne 0x180386de6
jmp case.0x180386849.1
cmp r8, 0
sete al
test al, 1
jne case.0x180386849.1
jmp 0x180386df7
mov eax, dword [0x18078d5a0]
imul eax, dword [0x18078d5a4]
xor eax, 0x1bdd2af4
mov ecx, 0x37d20bb4
xor edx, edx
div ecx
sub eax, 0x3b4a73d4
cmp eax, 0x6b305f49
jbe 0x180386fdc
jmp 0x180386e24
mov eax, dword [0x18078d5a8]
or eax, dword [0x18078d5ac]
xor eax, 0x75dd68f8
or eax, 0x61a98675
mov ecx, 0x8bfb7a41
xor edx, edx
div ecx
mov rcx, rsi
add rcx, 0x10
cmp eax, 0x32fa3941
je 0x180386e24
jmp 0x180386e53
mov rcx, qword [rcx]
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x18078d5b0]
and eax, dword [0x18078d5b4]
add byte [ecx - 0x40], bpl
xchg ebp, eax
shr dword [rax + rdi*2 + 0x25], 1
mov ah, 0x46
cmp al, 0x28
mov eax, dword [0x18078d5c0]
sub eax, dword [0x18078d5c4]
add eax, 0xad9f6777
and eax, 0x8a74c196
sub eax, 0x3501b54a
cmp eax, 0x205971cf
je 0x180386ffe
mov edi, dword [0x18078d5c8]
xor edi, dword [0x18078d5cc]
xor edi, 0x41bb0827
and edi, 0xe3de4719
xor edi, 0x2a9aeaa5
mov rcx, rsi
call fcn.180383b00
cmp edi, 0x575836a4
jbe 0x180386ffe
jmp 0x180386f0f
jmp case.0x180386849.1
push rcx
and byte [rsi - 0x173f00d7], ah
mov edx, 0x426e11ec
jmp 0x180386a71
fcmovbe st(0), st(2)
fcmovbe st(0), st(2)
mov esp, 0x3e59e554
mov ch, 0x30
mov ecx, ebp
jbe 0x180386f6f
xor byte [rcx - 0x48917], cl
invalid
invalid
clc
and edx, dword [rdi + 0x1c]
xlatb
movabs dword [0xc8e9e93ad1c24a36], eax
sti
invalid
invalid
jnp 0x180386f55
jae 0x180386f67
mov bl, 0x75
add al, 0x13
call 0x13021b376
cld
invalid
invalid
lodsb al, byte [rsi]
mov ah, byte [rax + rdi*2 + 0x70c9449b]
sbb al, 0x14
add eax, 0xfd44e90d
invalid
sal byte [rbx], cl
insd dword [rdi], dx
mov al, 0x38
mov dl, 0xb9
in eax, 0xb9
in eax, dx
pop rsi
jmp 0x180386d6c
invalid
sub dl, byte [rdi - 0x6f]
pop rdx
stosb byte [rdi], al
shl qword [rdi + 0x48], 0x89
int1
call fcn.180383b00
jmp 0x180386edb