Function at 0x140005740
Capabilities:
Check if file exists
Enumerate files on windows
Get common file path

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x8e8]
sub rsp, 0x9c0
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140030010]
xor rax, rsp
mov qword [rbp + 0x8b0], rax
mov r12, rcx
xor r15d, r15d
mov dword [rsp + 0x38], r15d
call fcn.140001550
mov qword [rsp + 0x40], r15
mov word [rsp + 0x58], r15w
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x140006120
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x60], rax
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x14000612b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x140006136
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x60]
call fcn.1400061c0
test eax, eax
jne 0x140005896
call qword [sym.imp.KERNEL32.DLL_GetLastError]
lea rsi, [r15 - 1]
cmp eax, 2
je 0x14000587b
cmp eax, 0xd
mov rax, rsi
je 0x14000585a
lea rdx, str.Internal_error._Contact_technical_support.
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140005840
mov r8d, eax
mov rcx, r12
call fcn.140002d50
jmp 0x14000607c
lea rdx, str.Invalid_or_corrupt_license._Please_see_documentation_for_further_information.
inc rax
cmp word [rdx + rax*2], 0
jne 0x140005861
mov r8d, eax
mov rcx, r12
call fcn.140002d50
jmp 0x14000607c
lea r8, str.DMLicense.txt
lea rdx, str.Unable_to_find_license._Please_check_security_device_attached_nor_valid__s_license_file_is_present.
mov rcx, r12
call fcn.140001970
jmp 0x14000607c
mov rax, qword [rsp + 0x48]
mov rsi, 0xffffffffffffffff
cmp dword [rax - 0x10], 0
je 0x14000593f
lea rcx, [rsp + 0x78]
call fcn.140006630
nop
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x140006141
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.DLL_lstrcmpiW]
test eax, eax
je 0x140005920
lea rdx, str.Invalid_activation_code._Please_contact_technical_support.
mov rax, rsi
nop
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400058e0
mov r8d, eax
mov rcx, r12
call fcn.140002d50
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005915
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov r15d, 2
jmp 0x14000607c
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000593f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov r13d, 0x64
mov qword [rsp + 0x60], r15
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.DLL_GetSystemTimeAsFileTime]
mov qword [rsp + 0x68], r15
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.DLL_FileTimeToLocalFileTime]
lea ebx, [r13 - 0x63]
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x140005990
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.DLL_CompareFileTime]
test eax, eax
cmovg r13d, ebx
mov eax, dword [rsp + 0x44]
mov r14d, r15d
mov edi, 2
cmp r13d, 0x64
jne 0x140005c90
test eax, eax
je 0x140005c90
mov rax, qword [rsp + 0x40]
mov rcx, rax
shr rcx, 0x20
mov dword [rsp + 0x34], ecx
mov dword [rsp + 0x30], eax
movabs rcx, 0x1792f8648000
mov rax, qword [rsp + 0x30]
add rax, rcx
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov dword [rbp - 0x7c], eax
mov eax, dword [rsp + 0x30]
mov dword [rbp - 0x80], eax
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x490]
call fcn.14000b020
mov edx, 0x104
lea rcx, [rbp + 0x490]
call qword [sym.imp.KERNEL32.DLL_GetWindowsDirectoryW]
test eax, eax
je 0x140005abc
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x14000614c
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x58], rax
lea r8, [rbp + 0x490]
lea rdx, str._s.
lea rcx, [rbp - 0x58]
call fcn.1400033b0
xor edx, edx
mov r8d, 0x250
lea rcx, [rbp - 0x10]
call fcn.14000b020
lea rdx, [rbp - 0x10]
mov rbx, qword [rbp - 0x58]
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140005aa2
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 4]
call qword [sym.imp.KERNEL32.DLL_CompareFileTime]
test eax, eax
jle 0x140005a87
inc r14d
lea rdx, [rbp - 0x10]
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x140005a72
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_FindClose]
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005abc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x6a0]
call fcn.14000b020
mov edx, 0x104
lea rcx, [rbp + 0x6a0]
call qword [sym.imp.KERNEL32.DLL_GetSystemDirectoryW]
test eax, eax
je 0x140005b90
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x140006157
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x50], rax
lea r8, [rbp + 0x6a0]
lea rdx, str._s.
lea rcx, [rbp - 0x50]
call fcn.1400033b0
lea rdx, [rbp + 0x240]
mov rbx, qword [rbp - 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140005b76
nop dword [rax]
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 0x254]
call qword [sym.imp.KERNEL32.DLL_CompareFileTime]
test eax, eax
jle 0x140005b58
inc r14d
lea rdx, [rbp + 0x240]
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x140005b40
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_FindClose]
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005b90
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
cmp r14d, 6
jbe 0x140005ba3
mov edi, 2
mov r13d, edi
jmp 0x140005c90
cmp dword [rsp + 0x44], 0
je 0x140005c8b
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
movsxd rcx, dword [rax + 0x3c]
mov dword [rsp + 0x34], 0x19db1de
mov dword [rsp + 0x30], 0xd53e8000
mov eax, dword [rcx + rax + 8]
imul rax, rax, 0x989680
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov qword [rsp + 0x30], rcx
shr rcx, 0x20
mov dword [rsp + 0x74], ecx
mov edi, dword [rsp + 0x30]
mov dword [rsp + 0x70], edi
mov rbx, qword [rsp + 0x70]
shr rbx, 0x20
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x30], edi
mov rax, qword [rsp + 0x30]
movabs rcx, 0x1792f8648000
sub rax, rcx
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov dword [rbp - 0x44], eax
mov eax, dword [rsp + 0x30]
mov dword [rbp - 0x48], eax
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x48]
call qword [sym.imp.KERNEL32.DLL_CompareFileTime]
test eax, eax
mov eax, 2
cmovg r13d, eax
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x30], edi
movabs rcx, 0x23da2f18d8000
mov rax, qword [rsp + 0x30]
add rax, rcx
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov dword [rbp - 0x3c], eax
mov eax, dword [rsp + 0x30]
mov dword [rbp - 0x40], eax
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.DLL_CompareFileTime]
test eax, eax
mov edi, 2
cmovg r13d, edi
jmp 0x140005c90
mov edi, 2
mov rcx, qword [rsp + 0x48]
movsxd rbx, dword [rcx - 0x10]
test ebx, ebx
jle 0x140005d0a
js 0x140006162
mov edx, 1
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, ebx
or eax, edx
jge 0x140005cc5
mov edx, ebx
lea rcx, [rsp + 0x48]
call fcn.140001810
mov rcx, qword [rsp + 0x48]
lea edx, [rbx + 1]
cmp edx, 0x7fffffff
ja 0x14000616d
call qword [sym.imp.USER32.dll_CharLowerBuffW]
nop
mov rax, qword [rsp + 0x48]
cmp ebx, dword [rax - 0xc]
jg 0x140006183
mov dword [rax - 0x10], ebx
mov rax, qword [rsp + 0x48]
mov word [rax + rbx*2], r15w
mov r8, qword [rsp + 0x48]
lea rdx, str.Activation______:__s_n
mov rcx, r12
call fcn.140001970
mov r8, qword [rbp - 0x60]
lea rdx, str.Organisation____:__s_n
mov rcx, r12
call fcn.140001970
mov rcx, qword [rsp + 0x50]
movsxd rbx, dword [rcx - 0x10]
test ebx, ebx
js 0x140006178
mov edx, 1
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, ebx
or eax, edx
jge 0x140005d50
mov edx, ebx
lea rcx, [rsp + 0x50]
call fcn.140001810
mov rcx, qword [rsp + 0x50]
lea edx, [rbx + 1]
cmp edx, 0x7fffffff
ja 0x14000618e
call qword [sym.imp.USER32.dll_CharUpperBuffW]
nop
mov rax, qword [rsp + 0x50]
cmp ebx, dword [rax - 0xc]
jg 0x140006115
mov dword [rax - 0x10], ebx
mov rax, qword [rsp + 0x50]
mov word [rax + rbx*2], r15w
mov r8, qword [rsp + 0x50]
lea rdx, str.Product_Key_____:__s_n
mov rcx, r12
call fcn.140001970
cmp dword [rsp + 0x44], 0
je 0x140005f06
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x140006199
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x78], rbx
mov dword [rsp + 0x38], 1
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.DLL_FileTimeToSystemTime]
test eax, eax
je 0x140005e70
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x30]
call fcn.140008a00
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140005e4e
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x140005e40
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140005e40
call fcn.140001790
mov qword [rsp + 0x70], rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x140005e36
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [r8 + 8]
mov rax, qword [rsp + 0x70]
add rax, 0x18
mov qword [rbp - 0x78], rax
jmp 0x140005e4e
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x78]
call fcn.140002d50
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005e6c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rbx, qword [rbp - 0x78]
mov r8, rbx
lea rdx, str.Product_Expiry__:__s
mov rcx, r12
call fcn.140001970
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005e9d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
cmp r13d, 1
jne 0x140005ecc
lea rdx, str._EXPIRED__n
mov rax, rsi
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140005eb0
mov r8d, eax
mov rcx, r12
call fcn.1400016a0
mov dword [rsp + 0x38], r15d
jmp 0x140005f10
cmp r13d, 0x64
jne 0x140005eef
lea rdx, str._CURRENT__n
mov rax, rsi
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140005ee0
jmp 0x14000606e
mov r8d, r13d
lea rdx, str._UNKNOWN_STATE__u__n
mov rcx, r12
call fcn.1400016a0
mov dword [rsp + 0x38], r15d
cmp r13d, 0x64
je 0x140006079
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x1400061a4
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x68], rax
mov dword [rsp + 0x38], edi
xor r9d, r9d
xor r8d, r8d
lea rdx, str._.8x_.8x
lea rcx, [rbp - 0x68]
call fcn.1400033b0
nop
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x1400061af
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x70], rax
mov dword [rsp + 0x38], 6
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x44]
lea rdx, str._.8x_.8x
lea rcx, [rbp - 0x70]
call fcn.1400033b0
nop
call fcn.1400011c0
mov rcx, rax
test rax, rax
je 0x14000610a
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x38], rax
mov dword [rsp + 0x38], 0xe
mov r9d, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x6c]
lea rdx, str._.8x_.8x
lea rcx, [rbp - 0x38]
call fcn.1400033b0
mov rax, qword [rbp - 0x68]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp - 0x70]
mov qword [rsp + 0x20], rax
mov rbx, qword [rbp - 0x38]
mov r9, rbx
mov r8d, r14d
lea rdx, str.Support_Ref_____:__.8x_s_s_s_n
mov rcx, r12
call fcn.140001970
mov dword [rsp + 0x38], 6
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000601a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov dword [rsp + 0x38], edi
mov rdx, qword [rbp - 0x70]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000603c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x68]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000605a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rdx, str.Product_license_is_not_valid._Please_check_you_are_using_the_latest_release_and_license_key._nPlease_see_documentation_for_more_information._n
mov rax, rsi
inc rax
cmp word [rdx + rax*2], 0
jne 0x140006064
mov r8d, eax
mov rcx, r12
call fcn.1400016a0
mov r15d, r13d
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000609b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400060ba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x1400060d7
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
nop
mov eax, r15d
mov rcx, qword [rbp + 0x8b0]
xor rcx, rsp
call fcn.140008ed0
lea r11, [rsp + 0x9c0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80070057
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80070057
call fcn.1400010b0
nop
mov ecx, 0x80070057
call fcn.1400010b0
nop
mov ecx, 0x80070057
call fcn.1400010b0
int3
mov ecx, 0x80070057
call fcn.1400010b0
nop
mov ecx, 0x80070057
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
nop
mov ecx, 0x80004005
call fcn.1400010b0
int3