Function at 0x140086220
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rcx, qword [rcx]
movzx eax, byte [rcx]
mov edx, dword [0x141dcecd8]
xor edx, dword [0x141dcecdc]
add edx, 0x1e49127f
xor edx, 0xb3080402
and edx, 0xfb8a0702
cmp edx, 0xa8016c5e
ja 0x14008627f
mov edx, dword [0x141dcece0]
and edx, dword [0x141dcece4]
add edx, 0x2198b662
or edx, 0x2c45504a
mov byte [rcx], 0
cmp edx, 0xca0b400c
jbe 0x140086284
mov byte [rcx], 0
jmp 0x14008625c
test al, al
je 0x140087408
mov eax, dword [0x141dcece8]
or eax, dword [0x141dcecec]
mov byte [rsp + 0x27], 0
or eax, 0xa18ee6e1
and eax, 0xa7bef6e3
cmp eax, 0x846267f
jne 0x1400862b4
mov eax, dword [0x141ddc498]
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [0x141ddc498]
test al, al
jne 0x1400862c0
cmp ecx, 3
jne 0x140087283
mov eax, dword [0x141dcecf0]
xor edx, edx
div dword [0x141dcecf4]
nop word cs:[rax + rax]
mov eax, dword [0x141dcecf8]
sub eax, dword [0x141dcecfc]
imul eax, eax, 0xfc606f51
add eax, 0x4f55f6fa
or eax, 0x484e9c2a
cmp eax, 0xc2b15461
jb 0x1400862f0
cmp byte [rsp + 0x27], 0
je 0x140086350
nop word [rax + rax]
mov eax, dword [0x141dced00]
and eax, dword [0x141dced04]
add eax, 0x91103c8a
cmp eax, 0xe6b0eb9
jb 0x140086350
mov eax, dword [0x141ddc4fc]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rdi, qword [rax + 0x88]
nop word cs:[rax + rax]
mov eax, dword [0x141dced08]
sub eax, dword [0x141dced0c]
xor eax, 0xe98b12c8
add eax, 0x80ed7f2d
or eax, 0x5632b3bd
cmp eax, 0xb2b02130
ja 0x140086390
test rdi, rdi
jne 0x140086625
mov eax, dword [0x141ddc4fc]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x98]
nop word cs:[rax + rax]
mov ecx, dword [0x141dced10]
imul ecx, dword [0x141dced14]
add ecx, 0x3895a6d2
imul rcx, rcx, 0x3a1041ed
shr rcx, 0x3c
cmp ecx, 0xc7761cdd
je 0x1400863e0
test rax, rax
jne 0x140086461
xor eax, eax
test al, al
jne 0x140087321
mov eax, dword [0x141dced18]
and eax, dword [0x141dced1c]
xor eax, 0xe72671eb
imul esi, eax, 0x24e48205
call fcn.1400fc160
cmp esi, 0xf3f051ce
je 0x140086415
nop dword [rax]
mov eax, dword [str.g_m]
xor edx, edx
div dword [0x141dced24]
add eax, 0x5265e721
or eax, 0x8ea44a11
cmp eax, 0x92278a46
je 0x140086440
jmp 0x14008646a
cmp eax, 1
jne 0x140087368
mov eax, dword [0x141ddc4fc]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rsi, qword [rax + 0x90]
test rsi, rsi
jne 0x140086533
mov eax, dword [0x141dced28]
and eax, dword [0x141dced2c]
imul eax, eax, 0x91ac547
or eax, 0xb2877add
add eax, 0x6c3235ff
cmp eax, 0xf755b92d
ja 0x14008732b
mov eax, dword [0x141dced30]
imul eax, dword [0x141dced34]
or eax, 0x39824d6b
imul rcx, rax, 0x3e1a71d
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
imul esi, eax, 0xc599bb3d
call fcn.1400fc510
cmp esi, 0x2b655cd0
ja 0x1400864b4
mov eax, dword [0x141ddc4fc]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rsi, qword [rax + 0x90]
nop word [rax + rax]
mov eax, dword [0x141dced38]
add eax, dword [0x141dced3c]
and eax, 0xf419470f
imul eax, eax, 0x112665dc
add eax, 0xa52dd298
cmp eax, 0x802585c6
jb 0x140086510
lock inc qword [rsi]
jle 0x1400873b1
invalid
nop dword [rax]
mov eax, dword [str.__Y]
imul eax, dword [0x141dced5c]
xor eax, 0x8242c18
or eax, 0xa3c343a5
cmp eax, 0x8512bd5f
jb 0x140086540
xor eax, eax
test al, al
jne 0x140086560
test rsi, rsi
je 0x140087368
mov rdi, qword [rsi + 0x28]
lock dec qword [rsi]
sete cl
nop dword [rax + rax]
mov eax, dword [0x141dced70]
xor edx, edx
div dword [0x141dced74]
or eax, 0xfff7ffef
cmp eax, 0xca281231
jb 0x140086580
test cl, cl
je 0x140086625
mov eax, dword [0x141dced78]
sub eax, dword [0x141dced7c]
and eax, 0x861e0a
imul eax, eax, 0x2168cd49
or eax, 0xf08805e3
cmp eax, 0x41f0a6f9
jae 0x1400865d0
mov rcx, rsi
call fcn.1400780e0
nop dword [rax]
mov ebx, dword [0x141dced80]
add ebx, dword [0x141dced84]
xor ebx, 0x4000242
or ebx, 0x608b1100
and ebx, 0x668bb742
mov rcx, rsi
call fcn.1400780e0
cmp ebx, 0x63984057
ja 0x1400865d0
nop
mov eax, dword [str._Ds]
xor edx, edx
div dword [0x141dced8c]
xor eax, 0x676b39cb
imul eax, eax, 0x25e7c1ba
xor eax, 0x479fb0fd
cmp eax, 0xbd668642
ja 0x140086600
mov rax, qword [0x141ddc460]
cmp rdi, rax
jne 0x1400871ce
mov eax, dword [0x141dceda8]
xor edx, edx
div dword [0x141dcedac]
nop word cs:[rax + rax]
mov eax, dword [0x141dcedb0]
sub eax, dword [0x141dcedb4]
or eax, 0x90063610
and eax, 0x908eb611
cmp eax, 0x85a0a181
je 0x140086650
mov eax, dword [0x141ddc468]
nop word cs:[rax + rax]
add byte [rax], al
add byte [rax], al
mov eax, dword [0x141dced90]
sub eax, dword [0x141dced94]
add eax, 0x2b804522
or eax, 0x487815a1
add eax, 0xa6b07f35
cmp eax, 0x45746d3c
jae 0x1400871fc
mov cl, 1
xor eax, eax
lock cmpxchg byte [0x141ddc46c], cl
mov cl, 1
nop
mov edx, dword [0x141dced98]
imul edx, dword [0x141dced9c]
add edx, 0x34fe7e85
or edx, 0xda35d122
xor eax, eax
lock cmpxchg byte [0x141ddc46c], cl
sete al
cmp edx, 0xd2cd5cb9
je 0x140087200
nop
mov ecx, dword [0x141dceda0]
add ecx, dword [0x141dceda4]
imul ecx, ecx, 0x297428c9
cmp ecx, 0x970ac09d
je 0x140087230
test al, al
je 0x140086320
mov eax, dword [0x141dcedc0]
and eax, dword [0x141dcedc4]
or eax, 0xfae3f561
imul rax, rax, 0xd65b33
shr rax, 0x36
xor eax, 0x1405c82b
cmp eax, 0xc6d7ed7f
jbe 0x14008740a
jmp 0x140087424
lea rcx, [rsp + 0x27]
call fcn.1400fc0ac
invalid
invalid
invalid
add cl, ch
invalid
invalid
invalid
invalid
call fcn.1400fc160
jmp 0x140086415
call fcn.1400fc510
jmp 0x1400864b4
mov eax, dword [0x141dced60]
sub eax, dword [0x141dced64]
mov eax, dword [0x141dced40]
add eax, dword [0x141dced44]
imul eax, eax, 0xd93c1fdc
add eax, 0x3fce4f41
cmp eax, 0x3230ad60
lodsd eax, dword [rsi]
xor byte [rdx], dh
mov eax, dword [0x141dcedc8]
xor eax, dword [0x141dcedcc]
mov qword [0x141ddc460], rdi
cmp eax, 0x6cc30c8d
jne 0x140087430
mov qword [0x141ddc460], rdi
jmp 0x14008740a
mov eax, dword [0x141dcedd0]
imul eax, dword [0x141dcedd4]
imul eax, eax, 0x2adce0ea
add eax, 0xfef5aab5
cmp eax, 0xb8c5dd8f
ja 0x140087430
mov eax, 1
mov dword [0x141ddc468], eax
cmp qword [0x141ddc470], 0
je 0x1400866c5