Function at 0x140101410
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
mov rbp, rsp
mov rsi, rcx
mov eax, dword [0x141f3ce78]
or eax, dword [0x141f3ce7c]
or eax, 0x119d26d
imul eax, eax, 0xa282d81b
add eax, 0x629f4561
cmp eax, 0xcba80308
ja 0x140101479
mov eax, dword [0x141f3ce80]
sub eax, dword [0x141f3ce84]
imul ecx, eax, 0xf41bb4f7
and ecx, 0x4b710fb9
add ecx, 0x99bd079a
mov eax, 0x10
call fcn.1400f4d10
sub rsp, rax
mov rdi, rsp
cmp ecx, 0x3ed5c06e
jae 0x140101488
mov eax, 0x10
call fcn.1400f4d10
sub rsp, rax
jmp 0x140101443
movzx ecx, byte [rsi]
cmp cl, 1
jne 0x140101520
mov edx, 0x64
mov eax, 0x83f41951
nop
mov ecx, dword [0x141f3ce88]
add ecx, dword [0x141f3ce8c]
imul rcx, rax
shr rcx, 0x3e
add ecx, 0x597ab90f
xor ecx, 0x1d4c951a
cmp ecx, 0xfc71a897
jbe 0x1401014d0
pause
movzx ecx, byte [rsi]
nop dword [rax]
mov r11d, dword [0x141f3ce90]
add r11d, dword [0x141f3ce94]
or r11d, 0x2c442113
pause
and r11d, 0xac64a173
movzx ecx, byte [rsi]
cmp cl, 1
setne r8b
mov r9d, edx
dec r9d
sete r10b
cmp r11d, 0x5957694a
je 0x1401014d0
or r8b, r10b
mov edx, r9d
je 0x1401014a0
nop word cs:[rax + rax]
mov eax, dword [0x141f3ce98]
and eax, dword [0x141f3ce9c]
and eax, 0x15020820
or eax, 0xeadde29c
imul eax, eax, 0x4cc479bc
cmp eax, 0xf99e774d
jb 0x140101520
test cl, cl
jne 0x14010157a
mov eax, dword [0x141f3cea0]
mov ecx, dword [0x141f3cea4]
add eax, ecx
add eax, 0xbce7e7a8
xor eax, 0xc51a50fa
imul rax, rax, 0x62073d5f
shr rax, 0x3e
cmp eax, 0x4d105ba3
jbe 0x140101752
jmp 0x140101786
xor ebx, ebx
mov r14, qword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WaitOnAddress]
mov r15, qword [sym.imp.KERNEL32.dll_GetLastError]
nop word [rax + rax]
mov eax, dword [str._r_]
xor edx, edx
div dword [0x141f3cec4]
add eax, 0xef06eab0
or eax, 0x663d501a
imul eax, eax, 0x3ec85f55
cmp eax, 0x5ef9e194
ja 0x140101590
cmp cl, 2
je 0x1401015e6
mov al, 2
xchg byte [rsi], al
mov ecx, dword [0x141f3cec8]
and ecx, dword [0x141f3cecc]
imul ecx, ecx, 0x13cae807
add ecx, 0xc71d9762
cmp ecx, 0x7af80006
ja 0x1401015be
test al, al
je 0x1401017e4
mov byte [rdi], 2
sub rsp, 0x20
mov r8d, 1
mov rcx, rsi
mov rdx, rdi
mov r9d, 0xffffffff
call r14
add rsp, 0x20
nop word cs:[rax + rax]
mov ecx, dword [0x141f3ced0]
sub ecx, dword [0x141f3ced4]
xor ecx, 0x8e00004c
or ecx, 0x206d3623
and ecx, 0xfe7dbe6f
cmp ecx, 0x47133ec7
jb 0x140101610
cmp eax, 1
je 0x140101688
mov eax, dword [0x141f3ced8]
add eax, dword [0x141f3cedc]
xor eax, 0x890ac2c7
add eax, 0xd03edb
cmp eax, 0x3471eb9c
jb 0x140101742
mov eax, dword [0x141f3cee0]
imul eax, dword [0x141f3cee4]
imul r12d, eax, 0x6799ed41
sub rsp, 0x20
call r15
add rsp, 0x20
cmp r12d, 0xdd5b1596
je 0x140101742
test bl, bl
je 0x140101690
movzx eax, byte [rsi]
nop
mov eax, dword [0x141f3cee8]
add eax, dword [0x141f3ceec]
xor eax, 0x54753306
or eax, 0xa8088899
xor eax, 0xe87a58b2
movzx ecx, byte [rsi]
cmp eax, 0x3f5ec43b
ja 0x140101690
mov eax, dword [0x141f3cef0]
xor edx, edx
div dword [0x141f3cef4]
nop word cs:[rax + rax]
mov eax, dword [0x141f3cef8]
xor eax, dword [0x141f3cefc]
or eax, 0xe91c135c
cmp eax, 0x2ad7674c
je 0x1401016d0
cmp cl, 1
jne 0x140101720
mov eax, 0xffffff9d
nop word cs:[rax + rax]
pause
movzx ecx, byte [rsi]
cmp cl, 1
jne 0x140101720
lea edx, [rax + 1]
test eax, eax
mov eax, edx
jne 0x140101700
nop word cs:[rax + rax]
mov eax, dword [0x141f3cf00]
add eax, dword [0x141f3cf04]
or eax, 0x76bf7bf2
xor eax, 0x309108ec
cmp eax, 0x6e7e6c6e
ja 0x140101720
jmp 0x140101590
sub rsp, 0x20
call r15
add rsp, 0x20
jmp 0x14010165c
mov eax, dword [0x141f3cea8]
xor edx, edx
div dword [0x141f3ceac]
xor eax, 0x1a477b83
imul edx, eax, 0xdc4edcd2
or edx, 0x81057a29
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi], cl
mov ecx, eax
sete al
cmp edx, 0xa6e1daf9
jne 0x140101790
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi], cl
jmp 0x140101752
mov edx, dword [0x141f3ceb0]
and edx, dword [str._f6_]
or edx, 0x7fc6defc
cmp edx, 0xcd08514b
je 0x140101790
nop word [rax + rax]
mov edx, dword [0x141f3ceb8]
imul edx, dword [0x141f3cebc]
or edx, 0xb17d585e
imul rdx, rdx, 0x11f1351f
shr rdx, 0x3c
add edx, 0xb11f41bb
cmp edx, 0x90ffaeea
jb 0x1401017b0
test al, al
je 0x14010157a
mov rsp, rbp
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret