Function at 0x40ed40
Capabilities:
Get common file path
Get file attributes

Disassembly:
mov eax, dword fs:[0]
mov ecx, dword [0x41db94]
push 0xffffffffffffffff
push 0x4144ad
push eax
mov eax, dword [0x41db98]
mov dword fs:[0], esp
sub esp, 0x624
push eax
push ecx
mov ecx, 0x41db90
call fcn.0040fbc0
mov edx, dword [0x41db88]
mov eax, dword [0x41db84]
push edx
push eax
mov ecx, 0x41db80
call fcn.0040fbc0
mov ecx, dword [0x41db78]
mov edx, dword [0x41db74]
push ecx
push edx
mov ecx, 0x41db70
call fcn.0040fbc0
lea eax, [esp + 0x520]
push 0x104
push eax
call fcn.0040f490
add esp, 8
test eax, eax
jne 0x40edcf
mov ecx, dword [esp + 0x624]
mov dword fs:[0], ecx
add esp, 0x630
ret
push ebx
push ebp
push esi
lea ecx, [esp + 0x52c]
push edi
push ecx
push str.clsid_s
lea edx, [esp + 0x22c]
push 0x208
push edx
call fcn.00409880
lea eax, [esp + 0x234]
push eax
push 0x80000000
call fcn.00406120
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0x18
or ebp, 0xffffffff
test eax, eax
je 0x40eee8
mov ecx, dword [0x419030]
lea edx, [esp + 0x224]
test edx, edx
mov dword [esp + 0x10], ecx
je 0x40ee91
lea eax, [esp + 0x224]
shr eax, 0x10
jne 0x40ee51
xor eax, eax
lea ecx, [esp + 0x224]
mov ax, cx
lea ecx, [esp + 0x10]
push eax
call fcn.00404910
jmp 0x40ee91
lea edx, [esp + 0x224]
push edx
call ebx
mov esi, eax
test esi, esi
je 0x40ee91
push esi
lea ecx, [esp + 0x14]
call fcn.00404b10
test eax, eax
je 0x40ee91
lea eax, [esi + 1]
cmp eax, esi
jb 0x40ee91
mov edi, dword [esp + 0x10]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x224]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x41db78]
lea eax, [esp + 0x10]
push eax
push ecx
mov ecx, 0x41db70
mov dword [esp + 0x644], 0
call fcn.0040fa10
mov eax, dword [esp + 0x10]
mov ecx, dword [0x419034]
mov dword [esp + 0x63c], ebp
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x40eee8
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40eee8
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.00413190
add esp, 4
call fcn.0040f640
test eax, eax
je 0x40efa9
mov ecx, dword [0x419030]
mov edx, str.SoftWare8749_technologies
test edx, edx
mov dword [esp + 0x10], ecx
je 0x40ef52
mov eax, edx
shr eax, 0x10
jne 0x40ef22
xor eax, eax
mov ecx, edx
mov ax, cx
lea ecx, [esp + 0x10]
push eax
call fcn.00404910
jmp 0x40ef52
push str.SoftWare8749_technologies
call ebx
mov esi, eax
test esi, esi
je 0x40ef52
push esi
lea ecx, [esp + 0x14]
call fcn.00404b10
test eax, eax
je 0x40ef52
mov edx, dword [esp + 0x10]
push esi
inc esi
push str.SoftWare8749_technologies
push esi
push edx
call fcn.00403ff0
add esp, 0x10
mov ecx, dword [0x41db88]
lea eax, [esp + 0x10]
push eax
push ecx
mov ecx, 0x41db80
mov dword [esp + 0x644], 1
call fcn.0040fa10
mov eax, dword [esp + 0x10]
mov ecx, dword [0x419034]
mov dword [esp + 0x63c], ebp
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x40efa9
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40efa9
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.00413190
add esp, 4
lea ecx, [esp + 0x120]
push 0x104
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea edx, [esp + 0x42c]
push edx
call fcn.004077c0
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
add esp, 4
test eax, eax
je 0x40f0bd
lea eax, [esp + 0x42c]
lea ecx, [esp + 0x1c]
push eax
push str._s_rasadhlp.dll
push 0x104
push ecx
call fcn.00409880
add esp, 0x10
lea edx, [esp + 0x1c]
push edx
call edi
cmp eax, ebp
je 0x40f0bd
mov eax, dword [0x419030]
lea ecx, [esp + 0x1c]
test ecx, ecx
mov dword [esp + 0x10], eax
je 0x40f067
lea edx, [esp + 0x1c]
shr edx, 0x10
jne 0x40f037
xor eax, eax
lea ecx, [esp + 0x1c]
mov ax, cx
lea ecx, [esp + 0x10]
push eax
call fcn.00404910
jmp 0x40f067
lea edx, [esp + 0x1c]
push edx
call ebx
mov esi, eax
test esi, esi
je 0x40f067
push esi
lea ecx, [esp + 0x14]
call fcn.00404b10
test eax, eax
je 0x40f067
mov ecx, dword [esp + 0x10]
push esi
lea eax, [esp + 0x20]
inc esi
push eax
push esi
push ecx
call fcn.00403ff0
add esp, 0x10
mov eax, dword [0x41db98]
lea edx, [esp + 0x10]
push edx
push eax
mov ecx, 0x41db90
mov dword [esp + 0x644], 2
call fcn.0040fa10
mov eax, dword [esp + 0x10]
mov edx, dword [0x419034]
mov dword [esp + 0x63c], ebp
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x40f0bd
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40f0bd
mov edx, dword [esp + 0x10]
lea eax, [edx - 0xc]
push eax
call fcn.00413190
add esp, 4
lea eax, [esp + 0x120]
lea ecx, [esp + 0x1c]
push eax
push str._sload.dll
push 0x104
push ecx
call fcn.00409880
add esp, 0x10
lea edx, [esp + 0x1c]
push edx
call edi
cmp eax, ebp
je 0x40f1a0
mov eax, dword [0x419030]
lea ecx, [esp + 0x1c]
test ecx, ecx
mov dword [esp + 0x10], eax
je 0x40f14a
lea edx, [esp + 0x1c]
shr edx, 0x10
jne 0x40f11a
xor eax, eax
lea ecx, [esp + 0x1c]
mov ax, cx
lea ecx, [esp + 0x10]
push eax
call fcn.00404910
jmp 0x40f14a
lea edx, [esp + 0x1c]
push edx
call ebx
mov esi, eax
test esi, esi
je 0x40f14a
push esi
lea ecx, [esp + 0x14]
call fcn.00404b10
test eax, eax
je 0x40f14a
mov ecx, dword [esp + 0x10]
push esi
lea eax, [esp + 0x20]
inc esi
push eax
push esi
push ecx
call fcn.00403ff0
add esp, 0x10
mov eax, dword [0x41db98]
lea edx, [esp + 0x10]
push edx
push eax
mov ecx, 0x41db90
mov dword [esp + 0x644], 3
call fcn.0040fa10
mov eax, dword [esp + 0x10]
mov edx, dword [0x419034]
mov dword [esp + 0x63c], ebp
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x40f1a0
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40f1a0
mov edx, dword [esp + 0x10]
lea eax, [edx - 0xc]
push eax
call fcn.00413190
add esp, 4
mov esi, 0x41ca38
mov ebx, 4
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x108]
mov edx, dword [esi + 0x104]
push eax
push ecx
push edx
push esi
call fcn.0040f360
add esp, 0x10
lea eax, [esp + 0x120]
lea ecx, [esp + 0x1c]
push esi
push eax
push str._s_s.dll
push 0x104
push ecx
call fcn.00409880
add esp, 0x14
lea edx, [esp + 0x1c]
push edx
call edi
cmp eax, ebp
je 0x40f254
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
call fcn.0040fd10
mov edx, dword [0x41db98]
lea ecx, [esp + 0x10]
push ecx
push edx
mov ecx, 0x41db90
mov dword [esp + 0x644], ebx
call fcn.0040fa10
mov eax, dword [esp + 0x10]
mov edx, dword [0x419034]
mov dword [esp + 0x63c], ebp
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x40f254
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40f254
mov edx, dword [esp + 0x10]
lea eax, [edx - 0xc]
push eax
call fcn.00413190
add esp, 4
lea eax, [esp + 0x120]
push esi
push eax
push str._s_s.sys
lea ecx, [esp + 0x28]
push 0x104
push ecx
call fcn.00409880
add esp, 0x14
lea edx, [esp + 0x1c]
push edx
call edi
cmp eax, ebp
je 0x40f2be
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x14]
push eax
call fcn.0040fd10
mov edx, dword [0x41db98]
lea ecx, [esp + 0x14]
push ecx
push edx
mov ecx, 0x41db90
mov dword [esp + 0x644], 5
call fcn.0040fa10
lea ecx, [esp + 0x14]
mov dword [esp + 0x63c], ebp
call fcn.00401cd0
lea eax, [esp + 0x42c]
push esi
push eax
push str._s_s.dll
lea ecx, [esp + 0x28]
push 0x104
push ecx
call fcn.00409880
add esp, 0x14
lea edx, [esp + 0x1c]
push edx
call edi
cmp eax, ebp
je 0x40f328
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x18]
push eax
call fcn.0040fd10
mov edx, dword [0x41db98]
lea ecx, [esp + 0x18]
push ecx
push edx
mov ecx, 0x41db90
mov dword [esp + 0x644], 6
call fcn.0040fa10
lea ecx, [esp + 0x18]
mov dword [esp + 0x63c], ebp
call fcn.00401cd0
add esi, 0x110
cmp esi, str._s_s.sys
jb 0x40f1aa
call fcn.0040f660
xor ecx, ecx
pop edi
cmp ecx, eax
mov ecx, dword [esp + 0x630]
sbb eax, eax
pop esi
pop ebp
pop ebx
neg eax
mov dword fs:[0], ecx
add esp, 0x630
ret