Function at 0x462cfd
Capabilities:
Get common file path

Disassembly:
push 0xaf4
mov eax, 0x44c344
call fcn.0043bc61
mov esi, edx
mov dword [ebp - 0xad0], esi
mov ebx, ecx
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0xacc], eax
call fcn.00436c07
test al, al
jne 0x462d32
xor eax, eax
jmp 0x4638ac
push dword [ebp - 0xacc]
mov edx, esi
mov ecx, ebx
call fcn.00464ced
mov ecx, dword [ebp + 4]
mov esi, eax
test esi, esi
jns 0x462d54
mov edx, 0x539
jmp 0x462ddc
push dword [ebp - 0xacc]
mov edx, dword [ebp - 0xad0]
push ecx
mov ecx, ebx
call fcn.00465610
mov ecx, dword [ebp + 4]
mov esi, eax
test esi, esi
jns 0x462d78
mov edx, 0x53f
jmp 0x462ddc
lea ecx, [ebp - 0xaf1]
call fcn.00465f13
mov ecx, dword [ebp + 4]
mov esi, eax
test esi, esi
jns 0x462d93
mov edx, 0x546
jmp 0x462ddc
mov edx, dword [ebp - 0xad0]
lea eax, [ebp - 0xafc]
and dword [ebp - 0xafc], 0
mov ecx, ebx
push eax
call fcn.0046ce9c
test eax, eax
jns 0x462de7
cmp dword [ebp - 0xafc], 0
jbe 0x462de7
push dword [ebp - 0xacc]
mov edx, dword [ebp - 0xad0]
mov ecx, ebx
call fcn.00464ced
mov ecx, dword [ebp + 4]
mov esi, eax
test esi, esi
jns 0x462de7
mov edx, 0x556
push esi
push 0x409960
call fcn.0045e47c
push 0x407030
lea ecx, [ebp - 0xaf8]
call fcn.004234c2
and dword [ebp - 4], 0
test esi, esi
js 0x462e5c
mov esi, dword [ebp - 0xaf8]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x462e2d
mov ebx, 0x409960
mov edx, 0x560
push esi
push ebx
call fcn.0045e47c
jmp 0x462e61
push dword [ebp - 0xacc]
mov edx, dword [ebp - 0xad0]
push ecx
push dword [ebp - 0xaf8]
mov ecx, ebx
call fcn.0046258e
mov ecx, dword [ebp + 4]
mov esi, eax
mov ebx, 0x409960
test esi, esi
jns 0x462e61
mov edx, 0x565
jmp 0x462e24
mov ebx, 0x409960
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
test esi, esi
js 0x462edd
lea eax, [ebp - 0x218]
push eax
push 1
push 0
push 0x24
push 0
call dword [sym.imp.ext_ms_win_shell32_shellfolders_l1_1_0.dll_SHGetFolderPathW]
mov ecx, dword [ebp + 4]
mov esi, eax
test esi, esi
jns 0x462ea7
push esi
push ebx
mov edx, 0x573
call fcn.0045e47c
jmp 0x462edd
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathAddBackslashW]
test eax, eax
jne 0x462edd
lea eax, [ebp - 0x218]
mov ecx, 0x80004005
push eax
push 0x40e578
push ecx
push ebx
push 0x579
push dword [ebp + 4]
mov esi, ecx
call fcn.00464a06
add esp, 0x18
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
test esi, esi
js 0x462f75
lea eax, [ebp - 0xb00]
mov dword [ebp - 0xb00], 0x104
push eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.USERENV.dll_GetProfilesDirectoryW]
test eax, eax
je 0x462f51
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathAddBackslashW]
test eax, eax
jne 0x462f75
lea eax, [ebp - 0x420]
mov ecx, 0x80004005
push eax
push 0x40e584
push ecx
push ebx
push 0x588
push dword [ebp + 4]
mov esi, ecx
call fcn.00464a06
add esp, 0x18
jmp 0x462f75
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x462f66
movzx esi, si
or esi, 0x80070000
mov ecx, dword [ebp + 4]
mov edx, 0x58e
push esi
push ebx
call fcn.004649e6
push 0x200
lea eax, [ebp - 0x620]
mov dword [ebp - 0x628], 0x3a0020
push 0
push eax
mov dword [ebp - 0x624], 0x5c
call sub.msvcrt.dll_memset
add esp, 0xc
test esi, esi
js 0x46389e
mov ax, word [ebp - 0x218]
lea ecx, [ebp - 0x6bc]
push 0x407ce8
mov word [ebp - 0x628], ax
call fcn.004319bd
mov byte [ebp - 4], 1
lea eax, [ebp - 0x628]
push 0xffffffffffffffff
push dword [ebp - 0x6b0]
push eax
mov eax, dword [ebp - 0x6bc]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4a3670]
lea ecx, [ebp - 0x6bc]
call esi
mov eax, dword [ebp - 0x6bc]
push 0xffffffffffffffff
push dword [ebp - 0x6b0]
mov esi, dword [eax + 0x10]
mov ecx, esi
push 0x40e594
call dword [0x4a3670]
lea ecx, [ebp - 0x6bc]
call esi
push dword [ebp - 0x6b8]
lea ecx, [ebp - 0xad4]
call fcn.004234c2
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0xad4]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x463055
push esi
push ebx
mov edx, 0x5a1
call fcn.0045e47c
jmp 0x463085
mov ecx, dword [ebp - 0xad4]
xor edx, edx
push edi
sub esp, 0xc
call fcn.00461356
push dword [ebp - 0xad4]
mov esi, eax
push 0x40e5ac
push esi
push ebx
push 0x5a6
push dword [ebp + 4]
call fcn.00464a2e
add esp, 0x18
push dword [ebp - 0xad4]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x6b8]
mov dword [ebp - fcn.0042be10], 0x401028
test eax, eax
je 0x4630bb
lea ecx, [ebp - 0x6ac]
cmp eax, ecx
je 0x4630bb
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
js 0x46389e
push 0x407ce8
lea ecx, [ebp - 0x750]
call fcn.004319bd
mov byte [ebp - 4], 3
lea eax, [ebp - 0x218]
push 0xffffffffffffffff
push dword [ebp - 0x744]
push eax
mov eax, dword [ebp - 0x750]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4a3670]
lea ecx, [ebp - 0x750]
call esi
mov eax, dword [ebp - 0x750]
push 0xffffffffffffffff
push dword [ebp - 0x744]
mov esi, dword [eax + 0x10]
mov ecx, esi
push 0x40e5b8
call dword [0x4a3670]
lea ecx, [ebp - 0x750]
call esi
push dword [ebp - 0x74c]
lea ecx, [ebp - 0xad8]
call fcn.004234c2
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0xad8]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x463163
push esi
push ebx
mov edx, 0x5b2
call fcn.0045e47c
jmp 0x463193
mov ecx, dword [ebp - 0xad8]
xor edx, edx
push edi
sub esp, 0xc
call fcn.00461356
push dword [ebp - 0xad8]
mov esi, eax
push 0x40e5ac
push esi
push ebx
push 0x5b7
push dword [ebp + 4]
call fcn.00464a2e
add esp, 0x18
push dword [ebp - 0xad8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x74c]
mov dword [ebp - fcn.0042be10], 0x401028
test eax, eax
je 0x4631c9
lea ecx, [ebp - 0x740]
cmp eax, ecx
je 0x4631c9
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
js 0x46389e
push 0x407ce8
lea ecx, [ebp - 0x7e4]
call fcn.004319bd
mov byte [ebp - 4], 5
lea eax, [ebp - 0x218]
push 0xffffffffffffffff
push dword [ebp - 0x7d8]
push eax
mov eax, dword [ebp - 0x7e4]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4a3670]
lea ecx, [ebp - 0x7e4]
call esi
mov eax, dword [ebp - 0x7e4]
push 0xffffffffffffffff
push dword [ebp - 0x7d8]
mov esi, dword [eax + 0x10]
mov ecx, esi
push 0x40e5c4
call dword [0x4a3670]
lea ecx, [ebp - 0x7e4]
call esi
push dword [ebp - 0x7e0]
lea ecx, [ebp - 0xadc]
call fcn.004234c2
mov byte [ebp - 4], 6
mov esi, dword [ebp - 0xadc]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x463271
push esi
push ebx
mov edx, 0x5c3
call fcn.0045e47c
jmp 0x4632a1
mov ecx, dword [ebp - 0xadc]
xor edx, edx
push edi
sub esp, 0xc
call fcn.00461356
push dword [ebp - 0xadc]
mov esi, eax
push 0x40e5ac
push esi
push ebx
push 0x5c8
push dword [ebp + 4]
call fcn.00464a2e
add esp, 0x18
push dword [ebp - 0xadc]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x7e0]
mov dword [ebp - fcn.0042be10], 0x401028
test eax, eax
je 0x4632d7
lea ecx, [ebp - 0x7d4]
cmp eax, ecx
je 0x4632d7
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
js 0x46389e
push 0x407ce8
lea ecx, [ebp - 0x878]
call fcn.004319bd
mov byte [ebp - 4], 7
lea eax, [ebp - 0x218]
push 0xffffffffffffffff
push dword [ebp - 0x86c]
push eax
mov eax, dword [ebp - 0x878]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4a3670]
lea ecx, [ebp - 0x878]
call esi
mov eax, dword [ebp - 0x878]
push 0xffffffffffffffff
push dword [ebp - 0x86c]
mov esi, dword [eax + 0x10]
mov ecx, esi
push 0x409868
call dword [0x4a3670]
lea ecx, [ebp - 0x878]
call esi
push dword [ebp - 0x874]
lea ecx, [ebp - 0xae0]
call fcn.004234c2
mov byte [ebp - 4], 8
mov esi, dword [ebp - 0xae0]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x46337f
push esi
push ebx
mov edx, 0x5d4
call fcn.0045e47c
jmp 0x4633af
mov ecx, dword [ebp - 0xae0]
xor edx, edx
push edi
sub esp, 0xc
call fcn.00461356
push dword [ebp - 0xae0]
mov esi, eax
push 0x40e5ac
push esi
push ebx
push 0x5d9
push dword [ebp + 4]
call fcn.00464a2e
add esp, 0x18
push dword [ebp - 0xae0]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x874]
mov dword [ebp - fcn.0042be10], 0x401028
test eax, eax
je 0x4633e5
lea ecx, [ebp - 0x868]
cmp eax, ecx
je 0x4633e5
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
js 0x46389e
push 0x407ce8
lea ecx, [ebp - 0x90c]
call fcn.004319bd
mov byte [ebp - 4], 9
lea eax, [ebp - 0x420]
push 0xffffffffffffffff
push dword [ebp - 0x900]
push eax
mov eax, dword [ebp - 0x90c]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4a3670]
lea ecx, [ebp - 0x90c]
call esi
mov eax, dword [ebp - 0x90c]
push 0xffffffffffffffff
push dword [ebp - 0x900]
mov esi, dword [eax + 0x10]
mov ecx, esi
push 0x40e5d8
call dword [0x4a3670]
lea ecx, [ebp - 0x90c]
call esi
push dword [ebp - 0x908]
lea ecx, [ebp - 0xae4]
call fcn.004234c2
mov byte [ebp - 4], 0xa
mov esi, dword [ebp - 0xae4]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x46348d
push esi
push ebx
mov edx, 0x5e7
call fcn.0045e47c
jmp 0x4634bd
mov ecx, dword [ebp - 0xae4]
xor edx, edx
push edi
sub esp, 0xc
call fcn.00461356
push dword [ebp - 0xae4]
mov esi, eax
push 0x40e5ac
push esi
push ebx
push 0x5ec
push dword [ebp + 4]
call fcn.00464a2e
add esp, 0x18
push dword [ebp - 0xae4]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x908]
mov dword [ebp - fcn.0042be10], 0x401028
test eax, eax
je 0x4634f3
lea ecx, [ebp - 0x8fc]
cmp eax, ecx
je 0x4634f3
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
js 0x46389e
push 0x407ce8
lea ecx, [ebp - 0x9a0]
call fcn.004319bd
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x420]
push 0xffffffffffffffff
push dword [ebp - 0x994]
push eax
mov eax, dword [ebp - 0x9a0]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4a3670]
lea ecx, [ebp - 0x9a0]
call esi
mov eax, dword [ebp - 0x9a0]
push 0xffffffffffffffff
push dword [ebp - 0x994]
mov esi, dword [eax + 0x10]
mov ecx, esi
push 0x40e608
call dword [0x4a3670]
lea ecx, [ebp - 0x9a0]
call esi
push dword [ebp - 0x99c]
lea ecx, [ebp - 0xae8]
call fcn.004234c2
mov byte [ebp - 4], 0xc
mov esi, dword [ebp - 0xae8]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x46359b
push esi
push ebx
mov edx, 0x5f9
call fcn.0045e47c
jmp 0x4635cb
mov ecx, dword [ebp - 0xae8]
xor edx, edx
push edi
sub esp, 0xc
call fcn.00461356
push dword [ebp - 0xae8]
mov esi, eax
push 0x40e5ac
push esi
push ebx
push 0x5fe
push dword [ebp + 4]
call fcn.00464a2e
add esp, 0x18
push dword [ebp - 0xae8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x99c]
mov dword [ebp - fcn.0042be10], 0x401028
test eax, eax
je 0x463601
lea ecx, [ebp - 0x990]
cmp eax, ecx
je 0x463601
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
js 0x46389e
push 0x407ce8
lea ecx, [ebp - 0xa34]
call fcn.004319bd
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x420]
push 0xffffffffffffffff
push dword [ebp - 0xa28]
push eax
mov eax, dword [ebp - 0xa34]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4a3670]
lea ecx, [ebp - 0xa34]
call esi
mov eax, dword [ebp - 0xa34]
push 0xffffffffffffffff
push dword [ebp - 0xa28]
mov esi, dword [eax + 0x10]
mov ecx, esi
push 0x40e630
call dword [0x4a3670]
lea ecx, [ebp - 0xa34]
call esi
push dword [ebp - 0xa30]
lea ecx, [ebp - 0xaec]
call fcn.004234c2
mov byte [ebp - 4], 0xe
mov esi, dword [ebp - 0xaec]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x4636a9
push esi
push ebx
mov edx, 0x60a
call fcn.0045e47c
jmp 0x4636d9
mov ecx, dword [ebp - 0xaec]
xor edx, edx
push edi
sub esp, 0xc
call fcn.00461356
push dword [ebp - 0xaec]
mov esi, eax
push 0x40e5ac
push esi
push ebx
push 0x60f
push dword [ebp + 4]
call fcn.00464a2e
add esp, 0x18
push dword [ebp - 0xaec]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xa30]
mov dword [ebp - fcn.0042be10], 0x401028
test eax, eax
je 0x46370f
lea ecx, [ebp - 0xa24]
cmp eax, ecx
je 0x46370f
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
js 0x46389e
push 0x407ce8
lea ecx, [ebp - 0xac8]
call fcn.004319bd
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x420]
push 0xffffffffffffffff
push dword [ebp - 0xabc]
push eax
mov eax, dword [ebp - 0xac8]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4a3670]
lea ecx, [ebp - 0xac8]
call esi
mov eax, dword [ebp - 0xac8]
push 0xffffffffffffffff
push dword [ebp - 0xabc]
mov esi, dword [eax + 0x10]
mov ecx, esi
push 0x40e6ac
call dword [0x4a3670]
lea ecx, [ebp - 0xac8]
call esi
push dword [ebp - 0xac4]
lea ecx, [ebp - 0xaf0]
call fcn.004234c2
mov byte [ebp - 4], 0x10
mov esi, dword [ebp - 0xaf0]
mov ecx, dword [ebp + 4]
neg esi
sbb esi, esi
and esi, 0x7ff8fff2
add esi, 0x8007000e
jns 0x4637b7
push esi
push ebx
mov edx, 0x61e
call fcn.0045e47c
jmp 0x4637e7
mov ecx, dword [ebp - 0xaf0]
xor edx, edx
push edi
sub esp, 0xc
call fcn.00461356
push dword [ebp - 0xaf0]
mov esi, eax
push 0x40e5ac
push esi
push ebx
push 0x623
push dword [ebp + 4]
call fcn.00464a2e
add esp, 0x18
push dword [ebp - 0xaf0]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xac4]
mov dword [ebp - fcn.0042be10], 0x401028
test eax, eax
je 0x46381d
lea ecx, [ebp - 0xab8]
cmp eax, ecx
je 0x46381d
push eax
call dword [sym.imp.msvcrt.dll_free]
pop ecx
test esi, esi
js 0x46389e
mov ebx, dword [ebp - 0xacc]
xor edx, edx
push edi
push ebx
push ecx
push ecx
push 0x16
inc edx
pop ecx
call fcn.00461632
lea esi, [eax + 0x7ff8ffa9]
neg esi
sbb esi, esi
and esi, eax
jge 0x46384b
mov edx, 0x632
jmp 0x463890
mov edx, edi
mov ecx, ebx
call fcn.0046180c
mov esi, eax
test esi, esi
jns 0x463861
mov edx, 0x639
jmp 0x463890
push edi
push ebx
push ecx
push ecx
push 0x23
xor edx, edx
pop ecx
call fcn.00461632
mov esi, eax
test esi, esi
jns 0x46387c
mov edx, 0x640
jmp 0x463890
mov dl, 1
mov ecx, edi
call fcn.0048de9e
mov esi, eax
test esi, esi
jns 0x46389e
mov edx, 0x646
mov ecx, dword [ebp + 4]
push esi
push 0x409960
call fcn.0045e47c
push dword [ebp - 0xaf8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, esi
call fcn.0043bc10
ret 8