Function at 0x140002230
Capabilities:
Check mutex on windows
Check os version
Get common file path

Disassembly:
push rbp
push rdi
push r12
push r13
push r14
sub rsp, 0x1f0
lea rbp, [rsp + 0x60]
mov qword [rbp + 0x58], 0xfffffffffffffffe
mov qword [rbp + 0x1c8], rbx
mov qword [rbp + 0x1d0], rsi
mov rax, qword [0x140050f70]
xor rax, rbp
mov qword [rbp + 0x180], rax
mov r13, rcx
lea r8, str.DocumentSafeGuard_application
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x140002294
xor eax, eax
jmp 0x140002e9b
mov qword [0x14005e410], r13
xor r14d, r14d
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x30], 0x80000000
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 0x80000000
mov r9d, 0xcf0000
lea r8, [0x14005e210]
lea rdx, [0x14005e010]
xor ecx, ecx
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [0x140057808], rax
test rax, rax
je 0x140002e9b
mov ecx, 0x208
call fcn.14000fd58
mov qword [0x140057790], rax
mov ecx, 0x208
call fcn.14000fd58
mov qword [0x1400577b0], rax
mov ecx, 0x208
call fcn.14000fd58
mov qword [0x1400577a8], rax
mov ecx, 0x208
call fcn.14000fd58
mov qword [0x1400577a0], rax
mov ecx, 0x208
call fcn.14000fd58
mov qword [0x140057798], rax
mov ecx, 0x208
call fcn.14000fd58
mov qword [0x140057788], rax
mov ecx, 0x208
call fcn.14000fd58
mov qword [0x140057780], rax
mov rax, qword [0x140057790]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rdx, qword [0x1400577b0]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rdx, qword [0x1400577a8]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rdx, qword [0x1400577a0]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rdx, qword [0x140057798]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rcx, qword [0x140057788]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov rcx, qword [0x140057780]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea rdx, str.DSFKenerl32.dll
mov rcx, qword [0x140057790]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.profile.upf
mov rcx, qword [0x1400577b0]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.pwd.upf
mov rcx, qword [0x1400577a8]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.hdsn.upf
mov rcx, qword [0x1400577a0]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.time.upf
mov rcx, qword [0x140057798]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.DSFKenerl64.dll
mov rcx, qword [0x140057788]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rdx, str.Rundll32.exe
mov rcx, qword [0x140057780]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
xor edx, edx
mov r8d, 0x114
lea rcx, [rbp + 0x60]
call fcn.140023170
mov dword [rbp + 0x60], 0x114
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [rbp + 0x64], 6
jne 0x140002510
cmp dword [rbp + 0x68], 1
jne 0x140002510
mov edx, 0xbe
lea r8, [0x14003fcd0]
jmp 0x14000251c
mov edx, 0xbf
lea r8, str.ID_KENERL_DLL
mov rcx, qword [0x140057790]
call fcn.140003210
lea r8, [0x14003fd18]
mov edx, 0x82
mov rcx, qword [0x1400577b0]
call fcn.140003210
lea r8, str.ID_PWD
mov edx, 0x89
mov rcx, qword [0x1400577a8]
call fcn.140003210
lea r8, str.ID_HDSN
mov edx, 0x8a
mov rcx, qword [0x1400577a0]
call fcn.140003210
lea r8, str.ID_TIME
mov edx, 0x97
mov rcx, qword [0x140057798]
call fcn.140003210
lea r8, [0x14003fd68]
mov edx, 0xbc
mov rcx, qword [0x140057788]
call fcn.140003210
lea r8, str.ID_RUNDLL32
mov edx, 0xbd
mov rcx, qword [0x140057780]
call fcn.140003210
nop
lea rcx, [rbp + 8]
call fcn.1400102dc
nop
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [0x1400577b0]
lea rcx, [rbp + 8]
call fcn.140010304
call fcn.140010c04
mov rdx, rax
mov ecx, r14d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400025f9
mov ecx, 0x80004005
call fcn.1400040d0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp], rax
lea rdx, [rbp]
lea rcx, [rbp + 8]
call fcn.140010954
lea rcx, [rbp + 8]
call fcn.14001080c
mov rdi, qword [rbp]
mov edx, dword [rdi - 0x10]
inc edx
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, edx
or eax, ecx
jge 0x140002647
lea rcx, [rbp]
call fcn.140004070
mov rdi, qword [rbp]
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.140020630
test eax, eax
js 0x140002e8e
mov rcx, qword [rbp]
cmp eax, dword [rcx - 0xc]
jg 0x140002e8e
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbp]
mov word [rax + rcx*2], r14w
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x14000269f
mov rdi, r14
mov qword [0x140057800], r14
movabs r12, 0xffffffffffffff0
jmp 0x1400026f6
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x1400026c0
movabs r12, 0xffffffffffffff0
mov rcx, r12
jmp 0x1400026ca
movabs r12, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400358e0
sub rsp, rcx
lea rcx, [rsp + 0x60]
mov r9d, 3
mov rdx, rdi
call fcn.140003ef0
mov rdi, rax
mov qword [0x140057800], rax
xor eax, eax
or rbx, 0xffffffffffffffff
mov rcx, rbx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp rcx, 0x400
jae 0x14000275d
lea r9d, [rax + 0x10]
lea r8, [0x14003fda0]
lea rdx, [0x140058210]
mov rcx, qword [0x140057808]
call qword [sym.imp.USER32.dll_MessageBoxW]
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x14000274d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 8]
call fcn.1400108b0
xor eax, eax
jmp 0x140002e9b
mov ecx, 0x1e0
call fcn.14000fd0c
mov qword [rbp + 0x50], rax
test rax, rax
je 0x140002785
mov rdx, qword [0x140057800]
mov rcx, rax
call fcn.14000b700
mov qword [rbp + 0x48], rax
jmp 0x14000278c
mov rax, r14
mov qword [rbp + 0x48], rax
mov qword [0x14005e420], rax
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [0x1400577a8]
lea rcx, [rbp + 8]
call fcn.140010304
lea rdx, [rbp]
lea rcx, [rbp + 8]
call fcn.140010954
lea rcx, [rbp + 8]
call fcn.14001080c
mov rdi, qword [rbp]
mov edx, dword [rdi - 0x10]
inc edx
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, edx
or eax, ecx
jge 0x1400027e6
lea rcx, [rbp]
call fcn.140004070
mov rdi, qword [rbp]
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.140020630
test eax, eax
js 0x140002e55
mov rcx, qword [rbp]
cmp eax, dword [rcx - 0xc]
jg 0x140002e55
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbp]
mov word [rax + rcx*2], r14w
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x140002831
mov qword [0x1400577f8], r14
jmp 0x14000286f
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140002846
mov rcx, r12
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400358e0
sub rsp, rcx
lea rcx, [rsp + 0x60]
mov r9d, 3
mov rdx, rdi
call fcn.140003ef0
mov qword [0x1400577f8], rax
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [0x1400577a0]
lea rcx, [rbp + 8]
call fcn.140010304
lea rdx, [rbp]
lea rcx, [rbp + 8]
call fcn.140010954
lea rcx, [rbp + 8]
call fcn.14001080c
mov rdi, qword [rbp]
mov edx, dword [rdi - 0x10]
inc edx
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, edx
or eax, ecx
jge 0x1400028c2
lea rcx, [rbp]
call fcn.140004070
mov rdi, qword [rbp]
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.140020630
test eax, eax
js 0x140002e4a
mov rcx, qword [rbp]
cmp eax, dword [rcx - 0xc]
jg 0x140002e4a
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbp]
mov word [rax + rcx*2], r14w
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x14000290d
mov qword [0x1400577f0], r14
jmp 0x14000294b
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140002922
mov rcx, r12
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400358e0
sub rsp, rcx
lea rcx, [rsp + 0x60]
mov r9d, 3
mov rdx, rdi
call fcn.140003ef0
mov qword [0x1400577f0], rax
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [0x140057798]
lea rcx, [rbp + 8]
call fcn.140010304
lea rdx, [rbp]
lea rcx, [rbp + 8]
call fcn.140010954
lea rcx, [rbp + 8]
call fcn.14001080c
mov rdi, qword [rbp]
mov edx, dword [rdi - 0x10]
inc edx
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, edx
or eax, ecx
jge 0x14000299e
lea rcx, [rbp]
call fcn.140004070
mov rdi, qword [rbp]
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.140020630
test eax, eax
js 0x140002e3f
mov rcx, qword [rbp]
cmp eax, dword [rcx - 0xc]
jg 0x140002e3f
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbp]
mov word [rax + rcx*2], r14w
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x1400029ec
mov rax, r14
mov qword [0x1400577e8], rax
jmp 0x140002a2a
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140002a01
mov rcx, r12
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400358e0
sub rsp, rcx
lea rcx, [rsp + 0x60]
mov r9d, 3
mov rdx, rdi
call fcn.140003ef0
mov qword [0x1400577e8], rax
mov rcx, rax
call fcn.140020708
mov dword [0x1400577e4], eax
lea rdi, str._123
mov rsi, qword [0x1400577e8]
mov ecx, 5
repe cmpsb byte [rsi], byte [rdi]
je 0x140002b43
mov rax, qword [0x14005e420]
mov rdi, qword [rax + 0x40]
test rdi, rdi
jne 0x140002a68
mov rax, r14
jmp 0x140002ab7
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r8d, [rax + 1]
cmp r8d, 0x3fffffff
jle 0x140002a83
mov rax, r14
jmp 0x140002ab7
movsxd rax, r8d
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140002a95
mov rcx, r12
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400358e0
sub rsp, rcx
lea rcx, [rsp + 0x60]
mov r9d, 3
mov rdx, rdi
call fcn.140003e20
mov rcx, rax
call fcn.1400039d0
test eax, eax
jne 0x140002b06
lea r9d, [rax + 0x10]
lea r8, [0x14003fda0]
lea rdx, [0x14005c010]
mov rcx, qword [0x140057808]
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rdi, qword [0x14005e420]
test rdi, rdi
je 0x140002afe
mov rcx, rdi
call fcn.14000cef0
mov rcx, rdi
call fcn.14000fd50
xor ecx, ecx
call fcn.140020a68
int3
mov rdi, qword [0x140057808]
lea r9, [0x140003460]
mov edx, 5
mov r8d, 0x927c0
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetTimer]
lea r9, [0x140003460]
mov edx, 4
mov r8d, 0xea60
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetTimer]
lea rdi, str.ABCDEFG
mov rsi, qword [0x1400577f8]
mov ecx, 8
repe cmpsb byte [rsi], byte [rdi]
je 0x140002bd7
mov qword [rsp + 0x20], r14
lea r9, [0x140002ed0]
mov r8, qword [0x140057808]
mov edx, 0x84
mov rcx, r13
call qword [sym.imp.USER32.dll_DialogBoxParamW]
cmp dword [0x14005e41c], 0
jne 0x140002d82
mov r9d, 0x10
lea r8, [0x14003fda0]
lea rdx, [0x140057c10]
mov rcx, qword [0x140057808]
call qword [sym.imp.USER32.dll_MessageBoxW]
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140002bc7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 8]
call fcn.1400108b0
xor eax, eax
jmp 0x140002e9b
lea rdi, [0x14003fdc0]
mov rsi, qword [0x1400577f0]
mov ecx, 2
repe cmpsb byte [rsi], byte [rdi]
je 0x140002c5f
mov rax, qword [0x14005e430]
test rax, rax
jne 0x140002c0d
lea rcx, [0x14003fdc8]
call fcn.140001af0
mov qword [0x14005e430], rax
mov rcx, qword [0x14005e420]
mov rdi, qword [rcx + 0x38]
sub rdi, rax
nop dword [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + rdi]
sub edx, ecx
jne 0x140002c32
inc rax
test ecx, ecx
jne 0x140002c20
test edx, edx
je 0x140002c5f
mov r9d, 0x10
lea r8, [0x14003fda0]
lea rdx, [0x140057a10]
mov rcx, qword [0x140057808]
call qword [sym.imp.USER32.dll_MessageBoxW]
xor ecx, ecx
call fcn.140020a68
nop
call fcn.140003720
nop
cmp qword [0x14005e428], 0
je 0x140002c7b
call fcn.140003680
mov dword [rbp + 0x30], eax
test eax, eax
je 0x140002c87
call fcn.140003530
mov dword [rbp + 0x30], eax
test eax, eax
jne 0x140002cde
mov r9d, 0x10
lea r8, [0x14003fda0]
lea rdx, [0x14005be10]
mov rcx, qword [0x140057808]
call qword [sym.imp.USER32.dll_MessageBoxW]
nop
mov rax, qword [rbp]
add rax, 0xffffffffffffffe8
mov qword [rbp + 0x40], rax
lock xadd dword [rax + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140002cce
mov rdx, qword [rbp + 0x40]
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 8]
call fcn.1400108b0
xor eax, eax
jmp 0x140002e9b
lea rcx, [0x14005e4d0]
call fcn.1400065c0
mov edx, 0x83
mov rcx, qword [0x14005e410]
call qword [sym.imp.USER32.dll_LoadIconW]
mov dword [rsp + 0x58], 0xa
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x30], 0x84
mov qword [rsp + 0x28], rax
lea rax, [0x14003fdd0]
mov qword [rsp + 0x20], rax
mov r9d, 0x800a
mov r8, qword [0x140057808]
mov rdx, qword [0x14005e410]
lea rcx, [0x14005e4d0]
call fcn.140006360
test eax, eax
jne 0x140002d82
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140002d72
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 8]
call fcn.1400108b0
xor eax, eax
jmp 0x140002e9b
xor ecx, ecx
call fcn.140020b08
mov qword [rbp + 0x38], rax
lea rdx, [0x1400577b8]
lea rcx, [rbp + 0x38]
call fcn.140003d90
call fcn.140003890
mov rcx, qword [0x140057808]
call qword [sym.imp.USER32.dll_UpdateWindow]
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140002dcd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 8]
call fcn.1400108b0
mov eax, 1
jmp 0x140002e9b
mov ecx, 0x80070057
call fcn.1400040d0
int3
mov ecx, 0x80070057
call fcn.1400040d0
int3
mov ecx, 0x80070057
call fcn.1400040d0
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
or rbx, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140002e81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 8]
call fcn.1400108b0
xor eax, eax
jmp 0x140002e9b
mov ecx, 0x80070057
call fcn.1400040d0
nop
xor eax, eax
mov rcx, qword [rbp + 0x180]
xor rcx, rbp
call fcn.14001fb20
mov rbx, qword [rbp + 0x1c8]
mov rsi, qword [rbp + 0x1d0]
lea rsp, [rbp + 0x190]
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret