Function at 0x44027a
Capabilities:
Get common file path

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
push 0x45c898
mov dword [0x45d9c4], eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov esi, 0x45e2f8
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x4402af
mov byte [0x45e2f8], al
push 0xffffffffffffffff
push esi
call fcn.00447520
xor edi, edi
pop ecx
inc edi
pop ecx
mov dword [0x45e3fc], eax
mov byte [esp + 0x40], 0
mov byte [esp + 0x13], 0
mov ebx, edi
call dword [sym.imp.MSVCR71.dll___p___argc]
cmp dword [eax], edi
jle 0x4403a7
call dword [sym.imp.MSVCR71.dll___p___argv]
cmp byte [esp + 0x13], 0
mov eax, dword [eax]
mov ebp, dword [eax + edi*4]
je 0x44032d
push 0
push 0
push ebx
lea eax, [esp + 0x28]
push 0x452984
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
push eax
push 0x45fb58
lea esi, [esp + 0x2c]
call fcn.0040bcf1
test eax, eax
je 0x440629
push 1
push 0
push 0xffffffffffffffff
push ebp
mov ecx, eax
call fcn.0040161c
inc ebx
jmp 0x440398
mov esi, dword [sym.imp.MSVCR71.dll__stricmp]
push 0x452980
push ebp
call esi
test eax, eax
pop ecx
pop ecx
je 0x440393
push str._restart
push ebp
call esi
test eax, eax
pop ecx
pop ecx
je 0x440393
push 0x452970
push ebp
call esi
test eax, eax
pop ecx
pop ecx
je 0x44038a
push str._force
push ebp
call esi
test eax, eax
pop ecx
pop ecx
je 0x44038a
push str._ErrorStdOut
push ebp
call esi
test eax, eax
pop ecx
pop ecx
jne 0x440382
mov byte [0x460008], 1
jmp 0x440398
mov byte [esp + 0x13], 1
dec edi
jmp 0x440398
mov byte [0x45db0c], 1
jmp 0x440398
mov byte [esp + 0x40], 1
inc edi
call dword [sym.imp.MSVCR71.dll___p___argc]
cmp edi, dword [eax]
jl 0x4402db
xor edi, edi
push edi
push edi
push edi
mov ebp, 0x45fb58
push ebp
mov esi, 0x452954
call fcn.0040bcf1
mov ecx, eax
cmp ecx, edi
je 0x440629
lea eax, [ebx - 1]
cdq
push 0x18
push edx
push eax
mov eax, ecx
call fcn.004019da
mov esi, dword [0x45b170]
call fcn.0040a490
mov al, byte [esp + 0x40]
mov ecx, dword [0x45b170]
mov ebx, ebp
call fcn.00440883
xor esi, esi
inc esi
cmp eax, esi
jne 0x440629
push 0xd0
push dword [0x45b170]
push 0x45c6a0
call sub.MSVCR71.dll_memcpy
add esp, 0xc
mov edi, ebp
call fcn.00449166
cmp eax, 0xffffffff
je 0x440629
xor ebx, ebx
cmp eax, ebx
je 0x440638
cmp dword [0x45db10], ebx
jne 0x440466
mov eax, dword [0x460234]
cmp word [eax], bx
jne 0x440460
cmp dword [0x45f3fc], ebx
jne 0x440460
cmp dword [0x45db00], ebx
jne 0x440460
cmp dword [0x45db04], ebx
jne 0x440460
cmp byte [0x45db14], bl
je 0x4404de
mov dword [0x45db10], esi
cmp dword [0x45db10], 4
je 0x4404de
cmp byte [esp + 0x40], 0
jne 0x4404e5
cmp byte [0x45db0c], 0
jne 0x44055d
push dword [0x460000]
push str.AutoHotkey
call dword [sym.imp.USER32.dll_FindWindowA]
mov edi, eax
cmp edi, ebx
je 0x44055d
mov eax, dword [0x45db10]
cmp eax, 3
je 0x440638
cmp eax, 2
je 0x4404d7
push ecx
fldz
push ecx
fstp qword [esp]
push ebx
push dword [0x45fff4]
push 4
push str.An_older_instance_of_this_script_is_already_running.__Replace_it_with_this_instance__nNote:_To_avoid_this_message__see_SingleInstance_in_the_help_file.
call fcn.0043b30a
add esp, 0x18
cmp eax, 7
je 0x440638
mov eax, 0x407
jmp 0x440501
cmp byte [esp + 0x40], 0
je 0x44055d
push dword [0x460000]
push str.AutoHotkey
call dword [sym.imp.USER32.dll_FindWindowA]
mov edi, eax
cmp edi, ebx
je 0x44055d
mov eax, 0x406
push ebx
push eax
push 0x44
push edi
call dword [sym.imp.USER32.dll_PostMessageA]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x14
call esi
mov ebp, dword [sym.imp.USER32.dll_IsWindow]
jmp 0x44054b
cmp ebx, 0x64
jne 0x440546
push ecx
fldz
push ecx
fstp qword [esp]
xor ebx, ebx
push ebx
push ebx
push 4
push str.Could_not_close_the_previous_instance_of_this_script.__Keep_waiting_
call fcn.0043b30a
add esp, 0x18
cmp eax, 7
je 0x440629
push 0x14
inc ebx
call esi
push edi
call ebp
test eax, eax
jne 0x44051e
push 0x64
call esi
mov ebp, 0x45fb58
xor ebx, ebx
call fcn.0043b496
push ebp
call fcn.00440644
cmp eax, 1
jne 0x440629
mov eax, dword [sym.imp.MSVCR71.dll__iob]
push ebx
push 4
add eax, 0x20
push ebx
push eax
call dword [sym.imp.MSVCR71.dll_setvbuf]
mov eax, dword [0x45b0d8]
add esp, 0x10
cmp eax, ebx
je 0x4405b8
imul eax, eax, 0x70
push eax
call dword [sym.imp.MSVCR71.dll_malloc]
cmp eax, ebx
pop ecx
mov dword [0x45e404], eax
je 0x4405b8
mov ecx, dword [0x45b0d8]
imul ecx, ecx, 0x70
push ecx
push ebx
push eax
call sub.MSVCR71.dll_memset
add esp, 0xc
cmp byte [0x460218], 0
jne 0x4405fb
push str.InitCommonControlsEx
push str.comctl32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x4405f5
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x18], 8
mov dword [esp + 0x1c], 0x1ff
call eax
jmp 0x4405fb
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.00410fad
push ebx
push ebx
push ebx
push ebp
mov esi, str.Clipboard
mov byte [0x460004], 1
call fcn.0040bcf1
cmp eax, ebx
je 0x44061e
call fcn.00409c37
mov eax, ebp
call fcn.004400da
test eax, eax
jne 0x44062e
push 2
pop eax
jmp 0x44063a
push ebx
push 0xa
call fcn.0040d9dd
pop ecx
pop ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x10