Function at 0x1400147cc
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x18]
sub rsp, 0x118
mov rax, qword [0x1400499b8]
xor rax, rsp
mov qword [rbp + 8], rax
movzx eax, word [0x1400495d4]
mov r13, r8
movsx r12, byte [0x1400494e4]
mov qword [rbp - 0x48], rax
movabs rax, 0x55bb683bb00ad
mov qword [rbp - 0x80], rax
mov r14, qword [0x140049578]
movsx rax, word [0x1400495a0]
mov qword [rbp - 0x58], rax
mov al, byte [0x1400495e8]
mov dword [rsp + 0x78], 0x5d27
mov dword [rsp + 0x58], 0x87
mov byte [rsp + 0x60], al
mov al, byte [0x1400495a8]
mov byte [rsp + 0x51], al
movsx eax, byte [0x1400494e3]
mov dword [rbp - 0x6c], eax
mov al, byte [0x14004956c]
mov byte [rsp + 0x5c], al
mov eax, 0x231f
mov word [rbp - 0x78], ax
mov rax, qword [0x1400495d8]
mov qword [rbp - 0x60], 0x41a7
mov qword [rbp - 0x40], rax
movzx eax, word [0x1400495d4]
mov dword [rsp + 0x68], 0xecfe
mov qword [rbp - 0x48], rax
mov eax, 0xe9
mov byte [rsp + 0x61], 0x40
mov word [rsp + 0x64], ax
mov al, byte [0x1400495a4]
mov byte [rsp + 0x50], al
movzx eax, word [0x140049608]
mov byte [rsp + 0x5c], 0x52
mov word [rsp + 0x5c], ax
mov rax, qword [0x1400495c0]
mov byte [rsp + 0x5c], al
movzx eax, word [0x1400495e0]
mov qword [rbp - 0x28], rcx
mov eax, 0x3afe
mov word [rsp + 0x5c], ax
movabs rax, 0xe0b7be6bd5dd2
mov qword [rbp - 0x48], rax
mov rax, qword [0x1400495c8]
mov eax, dword [0x140049590]
mov dword [rsp + 0x74], eax
movzx eax, word [0x1400495a8]
mov word [rsp + 0x5c], ax
mov rax, qword [0x140049600]
mov rax, qword [rbp - 0x40]
dec rax
mov qword [rbp - 0x30], rdx
mov qword [rbp - 0x40], rax
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x5c], eax
mov rbx, qword [0x1400495f0]
movzx eax, word [rsp + 0x64]
mov rdx, qword [rbp - 0x60]
not eax
movsxd rcx, eax
movzx eax, byte [str.MSUnsupportedAlgorit]
imul rdx, rcx
imul ecx, r12d, 0xf299c102
mov dword [rbp - 0x38], r9d
shl bl, 8
and ecx, eax
add ecx, edx
mov dword [rsp + 0x58], ecx
mov eax, dword [rsp + 0x5c]
add eax, 0xf2
mov dword [rbp - 0x74], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, dword [rsp + 0x5c]
mov rsi, rax
add ecx, 0x286
mov dword [rsp + 0x7c], ecx
mov ecx, dword [rsp + 0x5c]
add ecx, 0x1a0
mov dword [rsp + 0x74], ecx
xor r15d, r15d
mov cl, byte [rsp + 0x50]
test cl, cl
jne 0x1400149a1
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x1400149d0
mov ecx, dword [0x140049590]
test si, si
mov eax, r15d
sete al
sub ecx, eax
movsx eax, word [0x1400495b8]
sub ecx, eax
sub ecx, dword [0x140049610]
sub ecx, 0x46baefc6
mov dword [rsp + 0x58], ecx
movsx esi, byte [rsp + 0x50]
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
movzx eax, byte [0x1400495fc]
imul ecx, eax, 0xd2
mov byte [rsp + 0x5c], cl
mov eax, dword [rsp + 0x58]
add eax, 0x3df
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x58]
add eax, 0x12
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x58]
add eax, 0x14f
mov dword [rbp - 0x68], eax
mov al, byte [0x1400495a4]
neg al
mov byte [0x140049513], al
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x58]
add eax, 0x25c
mov dword [rbp - 0x50], eax
mov rax, qword [rbp - 0x58]
test rax, rax
jne 0x140014a6c
movzx eax, bl
mov edx, r15d
cmp word [0x140049554], ax
mov ecx, r15d
mov rax, qword [rbp - 0x60]
mov r8d, 0xa7
seta dl
movzx ebx, bl
cmp qword [0x1400495e8], rax
setae cl
cmp edx, ecx
cmovb ebx, r8d
mov eax, dword [rsp + 0x58]
lea rcx, [rbp - 0x10]
movups xmm0, xmmword [str.amr_values]
add eax, 0x1c0
mov dword [rbp - 0x70], eax
mov eax, dword [0x140036968]
mov dword [rbp], eax
movzx eax, word [0x14003696c]
mov word [rbp + 4], ax
movups xmmword [rbp - 0x10], xmm0
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [rsp + 0x58]
mov edi, eax
add ecx, 0x22d
mov dword [rsp + 0x74], ecx
movzx ecx, word [0x1400495e0]
test cx, cx
jne 0x140014b17
movzx edx, word [0x1400495e0]
mov rcx, qword [0x1400495c8]
cmp rdx, rcx
ja 0x140014ae5
movzx eax, word [rbp - 0x78]
sub rax, 0x5f2f24e6
mov qword [rbp - 0x80], rax
mov byte [rsp + 0x51], 0x89
jmp 0x140014b17
mov al, byte [0x1400494fb]
test al, al
je 0x140014b17
mov ecx, dword [rsp + 0x68]
mov rax, qword [rbp - 0x80]
sub ecx, 0x142fa18e
xor rax, rcx
mov ecx, 0xbe
mov qword [rbp - 0x80], rax
mov rax, qword [rbp - 0x40]
sub ax, cx
mov word [0x1400495bc], ax
mov eax, dword [0x140a0f0f0]
mov dword [rsp + 0x58], eax
mov rax, qword [0x1400495c0]
test rax, rax
je 0x140014b52
mov eax, dword [0x1400495d8]
movzx ecx, di
not ecx
mov dword [0x140ce4598], eax
mov eax, dword [rsp + 0x78]
xor ecx, eax
add ecx, 0xd00c
mov dword [0x1400494fc], ecx
jmp 0x140014b73
movsx ecx, byte [rsp + 0x50]
movzx eax, byte [str.MSUnsupportedAlgorit]
cmp eax, ecx
jge 0x140014b73
movsxd rax, dword [0x1400494fc]
neg rax
mov qword [0x1400495a8], rax
mov eax, dword [rsp + 0x58]
add eax, 0xe0ff
mov dword [rsp + 0x70], eax
movzx eax, word [0x140049514]
test ax, ax
je 0x140014be3
movzx edx, word [rsp + 0x64]
mov r8d, r15d
movsx eax, byte [rsp + 0x60]
mov ecx, r15d
cmp edx, eax
movzx eax, word [rsp + 0x64]
sete r8b
cmp r8d, ecx
jb 0x140014bbb
lea eax, [r14 + 0xdf491f5]
mov dword [0x140049594], eax
jmp 0x140014be3
test bl, bl
je 0x140014be3
mov al, byte [0x140049513]
add al, 0x36
mov byte [0x1400494fb], al
mov eax, dword [rsp + 0x78]
mov rcx, qword [rbp - 0x58]
not rcx
imul rcx, rax
mov qword [0x1400495d8], rcx
mov eax, dword [rsp + 0x58]
add eax, 0xa3
mov dword [rsp + 0x74], eax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, eax
mov qword [rbp - 0x48], rcx
mov eax, dword [rsp + 0x58]
add eax, 0x9e
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x58], eax
mov qword [0x140049600], 0x1a8fa611
mov rcx, qword [0x140049600]
movsx rax, word [0x1400495a0]
add rcx, r14
cmp rax, rcx
jne 0x140014c47
mov rdx, qword [rbp - 0x48]
movzx eax, word [0x1400495f8]
add rdx, 0x48
cmp rax, rdx
je 0x140014c11
movzx eax, byte [0x140049588]
imul ecx, eax, 0xf4
mov word [0x1400495e0], r15w
mov byte [rsp + 0x51], cl
movzx eax, word [0x1400495e0]
test ax, ax
jne 0x140014c8b
mov rax, qword [rbp - 0x60]
sub rax, 0xc43
mov qword [rbp - 0x40], rax
movsx ecx, byte [0x1400494fb]
add cx, cx
mov word [0x1400495bc], cx
mov r8d, dword [rsp + 0x7c]
mov eax, 0x1d2
mov edx, dword [rsp + 0x7c]
xor r8d, eax
mov ecx, dword [rsp + 0x7c]
xor edx, eax
mov eax, dword [rbp - 0x74]
sub edx, r8d
add ecx, eax
imul ecx, edx
mov edx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x54]
imul edx, eax
lea r8d, [rcx + 0x8aff05]
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x70]
imul ecx, eax
mov eax, dword [0x140a0f0f0]
or ecx, edx
sub r8d, ecx
mov dword [rsp + 0x74], r8d
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x54]
add eax, 0x58af
mov dword [rbp - 0x74], eax
mov eax, dword [rsp + 0x54]
add eax, 0x3b
mov dword [rsp + 0x7c], eax
mov eax, dword [0x1400495d0]
mov rax, qword [rbp - 0x60]
mov al, byte [rsp + 0x50]
test al, al
jne 0x140014d0b
mov al, byte [rsp + 0x60]
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x140014d70
mov rax, qword [0x1400495a8]
cmp qword [0x140049588], rax
jae 0x140014d42
mov al, byte [rsp + 0x60]
test al, al
je 0x140014d34
mov eax, dword [0x1400495e8]
jmp 0x140014d3a
movsx rax, byte [rsp + 0x61]
mov dword [0x1400494fc], eax
jmp 0x140014d89
mov al, byte [rsp + 0x51]
test al, al
je 0x140014d59
mov eax, dword [rsp + 0x68]
sub eax, 0x138e75e6
mov dword [rsp + 0x68], eax
jmp 0x140014d89
mov rcx, qword [0x140049598]
mov rax, qword [rbp - 0x80]
xor rcx, rax
mov qword [0x140049598], rcx
jmp 0x140014d89
mov eax, dword [0x1400495d8]
mov bl, byte [rsp + 0x5c]
add eax, 0xffffffa1
add bl, byte [0x1400495a0]
mov dword [0x140049590], eax
mov eax, dword [rsp + 0x54]
xor r8d, r8d
add eax, 0x38fc
movzx r15d, bl
mov dword [rsp + 0x70], eax
test si, si
movzx eax, word [0x1400495e0]
movsx rdx, byte [rsp + 0x50]
movzx eax, byte [0x1400494e7]
mov rcx, qword [0x140049588]
cmovne rcx, rax
mov qword [0x140a83db8], r15
mov rax, qword [rbp - 0x80]
mov qword [0x140049588], rcx
movsx ecx, al
imul ecx, edx
mov byte [rsp + 0x50], cl
mov ecx, dword [rsp + 0x70]
mov eax, dword [rsp + 0x7c]
or ecx, eax
mov edx, dword [rsp + 0x7c]
mov eax, dword [rbp - 0x74]
add edx, eax
mov eax, dword [rbp - 0x68]
xor edx, ecx
mov ecx, dword [rsp + 0x6c]
sub ecx, eax
mov eax, dword [rbp - 0x68]
xor eax, ecx
mov ecx, dword [rsp + 0x6c]
xor ecx, eax
mov eax, dword [0x140a0f0f0]
sub ecx, edx
add ecx, 0x6096
mov dword [rbp - 0x68], ecx
mov dword [rsp + 0x54], eax
movsxd rax, dword [0x1400494fc]
sub rax, 0xfe70
mov qword [rbp - 0x60], rax
mov eax, dword [rsp + 0x54]
add eax, 0x46a8
cmp word [0x1400495a0], r8w
mov dword [rsp + 0x70], eax
je 0x140014e6e
mov eax, dword [rsp + 0x58]
mov rax, qword [rbp - 0x80]
xor rax, 0xddaf
mov qword [0x140049578], rax
mov rcx, qword [rbp - 0x80]
sub rcx, qword [0x1400495a8]
mov rax, qword [rbp - 0x80]
add rax, rcx
mov qword [rbp - 0x80], rax
jmp 0x140014e7c
movzx eax, word [0x1400495fc]
mov qword [0x140a7d8f8], rax
mov eax, dword [rsp + 0x54]
add eax, 0x2b
mov dword [rbp - 0x74], eax
mov eax, dword [rsp + 0x68]
movsx ecx, word [0x1400495a0]
xor eax, 0x9360aad7
mov dword [0x1400495d0], eax
movsx eax, word [0x140049610]
imul ecx, eax
mov eax, dword [rsp + 0x54]
add eax, 0x9cfd
mov word [0x1400495a0], cx
mov dword [rsp + 0x70], eax
mov byte [rsp + 0x50], 1
mov eax, dword [rsp + 0x68]
shl eax, 5
mov dword [0x1400495d0], eax
test bl, bl
mov eax, dword [0x140049590]
cmovne eax, dword [rbp - 0x60]
mov dword [rsp + 0x68], eax
cmp byte [rsp + 0x50], 1
jne 0x140014efe
mov dword [rsp + 0x68], 9
movsx eax, byte [rsp + 0x50]
add eax, 0x9b40
cdqe
sub qword [0x1400495a8], rax
mov eax, dword [rbp - 0x50]
mov eax, dword [rbp - 0x70]
mov ecx, dword [rsp + 0x70]
mov eax, dword [rbp - 0x74]
add ecx, eax
mov eax, dword [0x140a0f0f0]
xor ecx, 0x9dc7
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x54], eax
mov al, byte [0x140049610]
add al, 0x42
mov qword [rbp - 0x58], 1
mov byte [0x1400494e5], al
mov rax, qword [rbp - 0x58]
mov rax, qword [0x140049580]
mov qword [0x140a45e78], rax
mov eax, dword [rsp + 0x54]
add eax, 0x26
mov dword [rbp - 0x50], eax
mov al, byte [0x1400494fc]
sub al, 0x69
mov byte [0x1400494e4], al
mov eax, dword [rsp + 0x54]
add eax, 0x12
mov dword [rbp - 0x70], eax
mov eax, dword [rsp + 0x54]
add eax, 0x465e
mov dword [rsp + 0x6c], eax
movzx eax, si
xor esi, esi
add eax, 0x56f7a0e8
mov edx, esi
mov dword [rsp + 0x68], eax
movsx ecx, byte [rsp + 0x61]
mov eax, dword [rsp + 0x68]
cmp eax, ecx
mov eax, dword [rsp + 0x68]
mov ecx, esi
setb dl
cmp eax, 0x51
setb cl
cmp edx, ecx
jb 0x140014fd8
call qword [sym.imp.USER32.dll_GetMessageTime]
mov word [0x1400495d4], ax
test ax, ax
jne 0x140015020
mov ecx, dword [0x140049594]
add ecx, 0x66
mov qword [0x1400495c0], rcx
movzx eax, byte [rsp + 0x51]
imul eax, eax, 0x54
mov byte [str.MSUnsupportedAlgorit], al
jmp 0x140015020
movsxd rax, dword [0x140049590]
mov rcx, qword [rbp - 0x48]
imul rcx, rax
test rcx, rcx
je 0x140015020
movsx ecx, byte [0x1400494e3]
mov edx, esi
imul ecx, dword [0x1400494fc]
mov rax, qword [rbp - 0x58]
movzx eax, di
test ecx, ecx
mov ecx, esi
sete dl
sub ecx, edx
add ecx, 0xe4770cf1
add ecx, eax
mov eax, dword [rbp - 0x6c]
add eax, ecx
mov qword [0x1400495e8], rax
mov eax, dword [rbp - 0x70]
mov ecx, 0xffff766b
sub ecx, eax
mov eax, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x6c]
add ecx, eax
mov eax, dword [rbp - 0x50]
add edx, ecx
add eax, edx
mov dword [rbp - 0x70], eax
movsx ecx, byte [0x1400494e5]
call qword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov dword [rsp + 0x78], eax
mov edx, esi
mov eax, dword [rsp + 0x78]
mov ecx, esi
cmp eax, 0x4b
mov eax, dword [rsp + 0x78]
setbe dl
test eax, eax
sete cl
cmp ecx, edx
jb 0x140015079
movzx eax, di
neg ax
mov word [0x1400495fc], ax
jmp 0x140015085
mov eax, dword [0x1400495e8]
mov dword [0x14004956c], eax
mov eax, dword [0x140a0f0f0]
mov ecx, 0xd56
mov dword [rsp + 0x54], eax
mov eax, 0xf657
mov word [0x140049514], ax
mov rax, qword [0x140049598]
add ax, cx
mov ecx, dword [rsp + 0x54]
mov word [0x1400495b8], ax
mov eax, dword [rsp + 0x74]
add ecx, eax
mov dword [rsp + 0x74], ecx
mov ecx, dword [rsp + 0x54]
mov eax, dword [rbp - 0x68]
add ecx, eax
mov dword [rsp + 0x6c], ecx
mov ecx, dword [rsp + 0x54]
mov eax, dword [rsp + 0x70]
add ecx, eax
mov dword [rsp + 0x74], ecx
movzx eax, word [0x1400495b4]
test ax, ax
je 0x140015106
test r14, r14
jne 0x14001516f
cmp word [0x1400495bc], si
jne 0x14001516f
mov eax, dword [0x140a0f0f0]
mov dword [0x140049594], eax
jmp 0x14001516f
mov cl, byte [rsp + 0x5c]
mov al, byte [rsp + 0x51]
cmp cl, al
jbe 0x140015155
mov rax, qword [rbp - 0x58]
mov ecx, 0x76b6
add ax, cx
movsx rcx, byte [rsp + 0x61]
mov rdx, qword [rbp - 0x60]
xor rdx, qword [0x140049588]
and word [0x1400495a4], ax
imul rcx, qword [0x140049610]
movsxd rax, dword [rbp - 0x6c]
add rdx, rcx
sub rdx, rax
movsxd rax, dword [rbp - 0x6c]
sub rdx, rax
mov qword [rbp - 0x48], rdx
jmp 0x14001516f
mov rax, qword [0x140049578]
test rax, rax
je 0x14001516f
mov eax, dword [0x1400495d0]
add al, 0x60
mov byte [0x1400494e7], al
mov ebx, dword [rbp - 0x38]
lea rcx, [0x140026752]
mov r8, qword [rbp - 0x30]
mov r9, r13
mov rdx, qword [rbp - 0x28]
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbx
call fcn.140012594
mov edx, dword [rsp + 0x6c]
mov r8, rax
mov ecx, dword [rbp - 0x70]
imul edx, ecx
mov ecx, dword [rsp + 0x6c]
cmp edx, ecx
je 0x140015353
mov rcx, qword [rbp - 0x60]
mov r9d, 0xedec
shr rcx, 2
mov dword [rbp - 0x6c], ecx
jmp 0x140015201
mov rcx, qword [0x140049610]
add rcx, r12
cmp rcx, 1
jne 0x140015220
mov rax, qword [0x140049580]
cmp rax, r12
ja 0x1400151f3
sub di, word [0x1400495e4]
jmp 0x140015201
mov rax, qword [rbp - 0x80]
shr rax, 1
mov qword [0x1400495f0], rax
mov rdx, qword [rbp - 0x80]
movzx eax, word [0x1400495e0]
add rdx, 0xbe4b
mov word [0x140049554], r9w
cmp rax, rdx
je 0x1400151ce
test r8, r8
jne 0x140015353
mov r8d, 0xffffbe4b
mov word [0x1400495b4], r8w
mov rdx, qword [rbp - 0x80]
movsx rax, word [0x1400495b4]
inc rdx
cmp rax, rdx
jne 0x1400152d6
cmp qword [0x140049588], rsi
mov ecx, esi
movzx eax, word [0x140049554]
sete cl
cmp eax, ecx
jbe 0x1400152ac
mov rcx, qword [rbp - 0x40]
movzx edx, word [0x1400495bc]
movzx eax, di
sub rcx, rax
mov rax, qword [0x140049580]
imul rdx, rcx
sub rdx, r15
sub rdx, r14
add eax, edx
mov dword [rsp + 0x58], eax
movsx eax, byte [0x1400494fb]
mov edx, dword [rsp + 0x68]
imul edx, eax
mov al, byte [0x1400494fb]
xor al, dl
mov byte [0x1400494fb], al
jmp 0x1400152cf
movzx eax, word [rbp - 0x78]
mov eax, dword [0x140ca8914]
mov qword [0x140049588], rax
mov rax, qword [0x1400495c8]
add eax, 0xd8
mov dword [0x1400495e4], eax
mov rax, qword [0x1400495c8]
mov word [0x1400495b4], r8w
mov ecx, dword [rsp + 0x58]
mov rax, qword [0x140049578]
movzx edx, cl
movzx ecx, al
mov rax, rsi
imul ecx, edx
mov dword [rbp - 0x20], 0x8f9495c7
mov dword [rbp - 0x1c], 0x8e949ddb
mov dword [rbp - 0x18], 0xc59f95
mov byte [rsp + 0x5c], cl
xor byte [rbp + rax - 0x20], 0xfb
inc rax
cmp rax, 0xb
jb 0x14001530e
mov qword [rsp + 0x40], rsi
lea r9d, [rbx - 1]
mov qword [rsp + 0x38], rsi
lea r8, [rbp - 0x20]
mov qword [rsp + 0x30], rsi
lea rcx, [0x140028eb0]
mov qword [rsp + 0x28], rsi
mov rdx, r13
mov qword [rsp + 0x20], rsi
call fcn.140012594
mov eax, 3
jmp 0x140015355
xor eax, eax
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.1400267f0
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret