Function at 0x140087cb0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
mov rbp, rsp
mov rdi, r8
mov r8, rdx
mov rbx, rcx
mov eax, dword [str.J_X]
and eax, dword [0x141dcd6b4]
and eax, 0x7ffed357
imul eax, eax, 0x8d4c4dca
and eax, 0x4befcefc
cmp eax, 0xe0408cfb
je 0x140087d20
mov eax, dword [0x141dcd6b8]
xor edx, edx
div dword [0x141dcd6bc]
or eax, 0x9c201eb0
imul ecx, eax, 0x6df72f2b
add ecx, 0x5af47b23
mov eax, 0x10
call fcn.1400eeec0
sub rsp, rax
mov r14, rsp
cmp ecx, 0x3e84ca09
jbe 0x140087d2f
mov eax, 0x10
call fcn.1400eeec0
sub rsp, rax
jmp 0x140087ce9
mov eax, 0x10
call fcn.1400eeec0
sub rsp, rax
mov r15, rsp
mov eax, 0x2000
call fcn.1400eeec0
sub rsp, rax
mov rsi, rsp
cmp rdi, 0x1001
jb 0x140087e16
mov eax, 0xf7708b51
nop word cs:[rax + rax]
mov ecx, dword [0x141dcd6c0]
sub ecx, dword [0x141dcd6c4]
imul rcx, rax
shr rcx, 0x3c
add ecx, 0x6fa7731e
cmp ecx, 0xf0e7d3e0
ja 0x140087d70
mov edi, 0x1000
cmp byte [r8 + 0x1000], 0xbf
jg 0x140087e16
movzx eax, byte [r8 + 0xfff]
xor ecx, ecx
nop dword [rax + rax]
test cl, cl
jne 0x140087db0
mov edi, 0xfff
cmp al, 0xbf
jg 0x140087e16
movzx eax, byte [r8 + 0xffe]
nop word cs:[rax + rax]
xor edi, edi
cmp al, 0xc0
setge cl
mov edx, dword [0x141dcd6c8]
xor edx, dword [0x141dcd6cc]
imul edx, edx, 0x4c460ff4
and edx, 0xbc78ec50
imul edx, edx, 0x7b060950
cmp edx, 0xc3fa78c1
jb 0x140087dd0
mov dil, cl
cmp byte [r8 + rdi + 0xffd], 0xbf
jle 0x1400881a5
add rdi, 0xffd
sub rsp, 0x30
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x28], 0x1000
mov ecx, 0xfde9
mov edx, 8
mov r9d, edi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
add rsp, 0x30
test eax, eax
je 0x1400881a5
movsxd r12, eax
nop dword [rax]
mov ecx, dword [0x141dcd6d0]
or ecx, dword [0x141dcd6d4]
or ecx, 0x91b91860
and ecx, 0x91f91966
cmp ecx, 0x1571f5ea
je 0x140087e50
cmp eax, 0x1000
ja 0x14008813a
mov dword [r15], 0
sub rsp, 0x30
mov qword [rsp + 0x20], 0
mov rcx, rbx
mov rdx, rsi
mov r8d, eax
mov r9, r15
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
add rsp, 0x30
xor ecx, ecx
nop word [rax + rax]
test cl, cl
jne 0x140087eb0
test eax, eax
je 0x140087ef9
mov eax, dword [0x141dcd6e0]
xor edx, edx
div dword [0x141dcd6e4]
nop word cs:[rax + rax]
mov eax, dword [0x141dcd6e8]
xor eax, dword [0x141dcd6ec]
and eax, 0x11100041
xor eax, 0x9004140
cmp eax, 0x18e54e58
ja 0x140087ed0
mov r15d, dword [r15]
cmp r15, r12
jne 0x140087f60
mov eax, dword [0x141dcd6f0]
sub eax, dword [0x141dcd6f4]
add eax, 0x238f4364
and eax, 0x72b15e88
cmp eax, 0xe9a3127d
jbe 0x140087f24
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetLastError]
add rsp, 0x20
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
xor edi, edi
nop dword [rax]
sub rsp, 0x20
call rsi
add rsp, 0x20
test dil, dil
jne 0x140087f30
movsxd rdi, eax
shl rdi, 0x20
or rdi, 2
jae 0x14008816c
lea rdx, [rsi + r15*2]
nop word [rax + rax]
mov eax, dword [0x141dcd6f8]
add eax, dword [0x141dcd6fc]
or eax, 0x821192c0
and eax, 0x965192e8
add eax, 0xfddf6e1a
cmp eax, 0x37a49f16
jb 0x140087f70
movzx eax, word [rsi + r15*2]
add eax, 0x2312
mov ecx, 0x97c8426d
nop word cs:[rax + rax]
mov r8d, dword [0x141dcd700]
xor r8d, dword [0x141dcd704]
xor r8d, 0x19c0bef9
imul r8, rcx
shr r8, 0x3d
imul r8d, r8d, 0xbf81705a
cmp r8d, 0xcb31704d
je 0x140087fb0
movzx eax, ax
cmp eax, 0x312
jae 0x140088036
inc r15
mov dword [r14], 0
sub rsp, 0x30
mov qword [rsp + 0x20], 0
mov rcx, rbx
mov r8d, 1
mov r9, r14
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
add rsp, 0x30
test eax, eax
jne 0x14008803f
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetLastError]
add rsp, 0x20
mov al, 1
nop dword [rax + rax]
test al, al
je 0x140088030
jmp 0x14008803f
test r15, r15
je 0x140088165
lea rcx, [rsi + r15*2]
xor r8d, r8d
xor edi, edi
jmp 0x140088060
ud2
xor edi, edi
jmp 0x140087ef5
mov eax, dword [0x141dcd708]
or eax, dword [0x141dcd70c]
or eax, 0xd7504000
xor eax, 0x1e102202
or eax, 0x20af8465
cmp eax, 0x893f7c9f
jae 0x140088190
ud2
mov eax, dword [0x141dcd710]
sub eax, dword [0x141dcd714]
ud2