Function at 0x140087d10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
movaps xmmword [rbp - 0x10], xmm6
mov rdi, rcx
mov eax, dword [0x141dd11d8]
and eax, dword [0x141dd11dc]
imul eax, eax, 0xa28a6af7
and eax, 0xb238da7e
add eax, 0x98686198
cmp eax, 0x33655b6f
jae 0x140087d60
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
nop dword [rax + rax]
mov eax, dword [0x141dd11e0]
or eax, dword [0x141dd11e4]
imul ecx, eax, 0x66dde613
add ecx, 0xd1a8137a
xor ecx, 0x19dd16ec
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
mov rsi, rsp
cmp ecx, 0xab854af5
jb 0x140087d60
nop word cs:[rax + rax]
mov eax, dword [0x141dd11e8]
imul eax, dword [0x141dd11ec]
or eax, 0x1501b10c
and eax, 0x5501b90e
cmp eax, 0x9811a754
ja 0x140087da0
mov rbx, qword [rdi + 0x28]
mov eax, dword [0x141dde6fc]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x98]
test rax, rax
jne 0x140087e45
mov eax, dword [0x141dd11f0]
imul eax, dword [0x141dd11f4]
xor eax, 0x49fe40ed
add eax, 0xcde66228
cmp eax, 0x922244af
jb 0x140087ed7
mov r14d, 0xac503217
mov eax, dword [0x141dd11f8]
and eax, dword [0x141dd11fc]
imul rax, r14
shr rax, 0x3f
xor eax, 0xb534cdc5
imul r15, rax, 0x7a3f846b
shr r15, 0x3d
sub rsp, 0x20
call fcn.1400fd330
add rsp, 0x20
cmp r15d, 0x4919d84c
jae 0x140087e09
jmp 0x140087e50
cmp eax, 1
jne 0x14008807f
nop
mov eax, dword [0x141dd1218]
xor eax, dword [0x141dd121c]
add eax, 0xf8e84d44
xor eax, 0x9cd241b6
cmp eax, 0xc9683423
ja 0x140087e50
mov eax, dword [0x141dde6fc]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + 0x90]
nop word [rax + rax]
mov ecx, dword [0x141dd1220]
sub ecx, dword [0x141dd1224]
add ecx, 0x214cbdc8
and ecx, 0x4fdd1d1d
cmp ecx, 0x1781d615
je 0x140087e90
test rax, rax
jne 0x140087ee9
mov eax, dword [0x141dd1270]
xor eax, dword [0x141dd1274]
imul eax, eax, 0xad306a24
cmp eax, 0xbce4d152
jne 0x14008817f
jmp 0x1400881c0
sub rsp, 0x20
call fcn.1400fd330
add rsp, 0x20
jmp 0x140087e03
mov eax, dword [0x141dd1228]
xor eax, dword [0x141dd122c]
and eax, 0xa84f41c
imul eax, eax, 0xfa0df9c4
and eax, 0x2fdec430
cmp eax, 0xcea6da17
jbe 0x140087f20
mov dword [rsi], 0
nop word cs:[rax + rax]
mov eax, dword [0x141dd1230]
or eax, dword [0x141dd1234]
or eax, 0x2eabf9c4
imul eax, eax, 0x1b38a356
add eax, 0x62b426d6
mov dword [rsi], 0
cmp eax, 0xd9c684cb
ja 0x140087f20
mov eax, dword [0x141dd1238]
or eax, dword [0x141dd123c]
imul rax, rax, 0x765da635
shr rax, 0x3e
imul ecx, eax, 0xbab96dc
lea rax, [0x141dbb638]
cmp ecx, 0x4d22b1ab
jne 0x140087f80
mov byte [rsi + 4], 0
mov qword [rbp - 0x48], rax
nop dword [rax]
mov ecx, dword [0x141dd1240]
imul ecx, dword [0x141dd1244]
imul ecx, ecx, 0x4fff05c5
add ecx, 0xd4d71c62
mov byte [rsi + 4], 0
mov qword [rbp - 0x48], rax
cmp ecx, 0x8cbc332b
ja 0x140087f80
mov eax, dword [0x141dd1248]
imul eax, dword [0x141dd124c]
xor eax, 0xc0208950
and eax, 0xc8a7ebd3
mov ecx, 0xafe5d08d
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x58c7abaa
jbe 0x14008800f
mov qword [rbp - 0x40], 1
lea rax, [rbp - 0x18]
mov qword [rbp - 0x38], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
sub rsp, 0x20
lea rdx, [rbp - 0x48]
mov rcx, rsi
call fcn.14008b390
mov rcx, rax
call fcn.14008b7b0
add rsp, 0x20
mov ecx, 7
int 0x29
lea rbx, [rbp - 0x18]
xorps xmm6, xmm6
lea rdi, [rbp - 0x48]
nop word [rax + rax]
mov eax, dword [0x141dd1250]
add eax, dword [0x141dd1254]
or eax, 0x393d9943
imul r14d, eax, 0x6582bc96
or r14d, 0x919dac81
mov qword [rbp - 0x40], 1
mov qword [rbp - 0x38], rbx
movups xmmword [rbp - 0x30], xmm6
sub rsp, 0x20
mov rcx, rsi
mov rdx, rdi
call fcn.14008b390
mov rcx, rax
call fcn.14008b7b0
add rsp, 0x20
mov ecx, 7
int 0x29
cmp r14d, 0x41090f50
je 0x140088020
jmp 0x14008817d
lock dec qword [rdi]
jne 0x140088118
mov eax, dword [0x141dd1200]
xor eax, dword [0x141dd1204]
mov ecx, 0xb12270e1
imul rcx, rax
shr rcx, 0x3f
imul eax, ecx, 0xab50701a
shr eax, 2
imul rax, rax, 0x4026913
shr rax, 0x2f
cmp eax, 0xad86750b
jbe 0x1400880bd
mov eax, dword [0x141dd1208]
xor eax, dword [0x141dd120c]
or eax, 0xc8f6330b
xor eax, 0xe39feb9f
add eax, 0x9b2f1f43
cmp eax, 0x7c0afe3e
jb 0x1400880bd
sub rsp, 0x20
mov rcx, rdi
call fcn.140078ff0
add rsp, 0x20
nop
mov eax, dword [0x141dd1210]
or eax, dword [0x141dd1214]
and eax, 0xcc414050
or eax, 0x31be3bae
imul rax, rax, 0x6f9fda3b
shr rax, 0x3e
cmp eax, 0x26a3f01e
jae 0x1400880f0
mov eax, dword [0x141dd1258]
and eax, dword [0x141dd125c]
add eax, 0x1b2a89f6
or eax, 0xff7f7b7e
cmp eax, 0x5bea7a43
jae 0x140088140
ud2
mov eax, dword [0x141dd1260]
imul eax, dword [0x141dd1264]
or eax, 0xf77d7ffe
xor eax, 0xa14e281a
ud2
ud2
mov eax, dword [0x141dde6fc]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov ecx, dword [0x141dd1278]
add ecx, dword [0x141dd127c]
and ecx, 0xd7037c0e
xor ecx, 0x4ed11355
mov qword [rax + 0x90], rdi
mov qword [rax + 0x88], rbx
cmp ecx, 0x5fe2c389
jbe 0x1400881f0
mov eax, dword [0x141dde6fc]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0x90], rdi
mov qword [rax + 0x88], rbx
jmp 0x14008817f
mov eax, dword [0x141dd1280]
xor edx, edx
div dword [0x141dd1284]
or eax, 0xd7ff173f
cmp eax, 0x28a06265
je 0x1400881f0
movaps xmm6, xmmword [rbp - 0x10]
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret