Function at 0x4074c0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x668
mov eax, dword [0x499100]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x414]
push eax
push 0
push 0
push 0x25
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea ecx, [ebp - 0x20c]
mov edx, 0x104
lea ebx, [ebp - 0x414]
mov eax, ecx
sub ebx, eax
mov dword [ebp - 0x668], ebx
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x407524
movzx eax, word [ebx + ecx]
test ax, ax
je 0x407524
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x407506
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x104
lea eax, [ebp - 0x20c]
nop dword [eax]
cmp word [eax], 0
je 0x40754e
add eax, 2
sub ecx, 1
jne 0x407540
mov edi, 0x104
mov esi, ecx
mov eax, edi
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x4075ac
mov edx, edi
lea ecx, [ebp - 0x20c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x40759f
mov ebx, 0x487594
mov eax, 0x7ffffffe
sub ebx, ecx
nop
test eax, eax
je 0x407599
movzx esi, word [ebx + ecx]
test si, si
je 0x407599
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x407580
mov ebx, dword [ebp - 0x668]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x40777b
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, edi
lea ecx, [ebp - 0x20c]
nop dword [eax + eax]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x4075fe
movzx eax, word [ebx + ecx]
test ax, ax
je 0x4075fe
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4075e0
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, edi
lea eax, [ebp - 0x20c]
cmp word [eax], 0
je 0x407621
add eax, 2
sub ecx, 1
jne 0x407613
mov eax, edi
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x40767c
mov edx, edi
lea ecx, [ebp - 0x20c]
lea ecx, [ecx + esi*2]
sub edx, esi
je 0x40766f
mov ebx, str._vcruntime140.dll
mov eax, 0x7ffffffe
sub ebx, ecx
nop dword [eax]
test eax, eax
je 0x407669
movzx esi, word [ecx + ebx]
test si, si
je 0x407669
mov word [ecx], si
dec eax
add ecx, 2
sub edx, 1
jne 0x407650
mov ebx, dword [ebp - 0x668]
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x40777b
mov esi, dword [sym.imp.KERNEL32.dll_FindClose]
push eax
call esi
mov edx, edi
lea ecx, [ebp - 0x20c]
nop word [eax + eax]
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x4076ce
movzx eax, word [ebx + ecx]
test ax, ax
je 0x4076ce
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4076b0
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
mov ecx, edi
lea eax, [ebp - 0x20c]
cmp word [eax], 0
je 0x4076f1
add eax, 2
sub ecx, 1
jne 0x4076e3
mov eax, edi
mov edx, ecx
sub eax, ecx
neg edx
sbb edx, edx
and edx, eax
test ecx, ecx
je 0x40774c
lea ecx, [ebp - 0x20c]
lea ecx, [ecx + edx*2]
sub edi, edx
je 0x40773f
mov esi, str._vcruntime140_1.dll
mov eax, 0x7ffffffe
sub esi, ecx
nop word [eax + eax]
test eax, eax
je 0x407739
movzx edx, word [esi + ecx]
test dx, dx
je 0x407739
mov word [ecx], dx
dec eax
add ecx, 2
sub edi, 1
jne 0x407720
mov esi, dword [sym.imp.KERNEL32.dll_FindClose]
test edi, edi
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x40777b
push eax
call esi
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046ae1f
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046ae1f
mov esp, ebp
pop ebp
ret