Function at 0x41acb0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Set current directory

Disassembly:
mov eax, 0x10410
call fcn.004b8900
mov al, byte [esp + 0x1041c]
push ebx
push ebp
push esi
push edi
mov edi, ecx
push 0x8000
mov byte [edi + 0x6ce], al
lea eax, [esp + 0x424]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov esi, eax
mov dword [esp + 0x10], esi
test esi, esi
je 0x41aded
cmp esi, 0x8000
je 0x41b025
cmp word [esp + 0x420], 0
je 0x41ad58
cmp esi, 0xffffffff
jne 0x41ad25
lea esi, [esp + 0x420]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x41ad16
sub esi, ecx
sar esi, 1
lea ebp, [esi + esi]
lea ecx, [ebp + 2]
call fcn.0047f3f0
mov ebx, eax
test ebx, ebx
je 0x41b22f
test esi, esi
je 0x41ad50
push ebp
lea eax, [esp + 0x424]
push eax
push ebx
call fcn.0049ef90
add esp, 0xc
xor eax, eax
mov word [ebx + ebp], ax
jmp 0x41ad5d
mov ebx, 0x4d1e48
lea eax, [esp + 0x420]
mov dword [edi + 0x6bc], ebx
push 0x5c
push eax
call fcn.0049d21e
mov esi, eax
add esp, 8
test esi, esi
je 0x41aded
lea eax, [esp + 0x420]
sub esi, eax
sar esi, 1
cmp word [esp + 0x420], 0
je 0x41ade2
cmp esi, 0xffffffff
jne 0x41adaf
mov esi, eax
lea ecx, [esi + 2]
nop dword [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x41ada0
sub esi, ecx
sar esi, 1
lea ebp, [esi + esi]
lea ecx, [ebp + 2]
call fcn.0047f3f0
mov ebx, eax
test ebx, ebx
je 0x41b22f
test esi, esi
je 0x41adda
push ebp
lea eax, [esp + 0x424]
push eax
push ebx
call fcn.0049ef90
add esp, 0xc
xor eax, eax
mov word [ebx + ebp], ax
jmp 0x41ade7
mov ebx, 0x4d1e48
mov dword [edi + 0x6c0], ebx
mov ebp, dword [esp + 0x10428]
test ebp, ebp
jne 0x41af24
lea eax, [esp + 0x420]
push 0x5c
push eax
call fcn.0049d21e
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x41b025
push 0x2e
push ebx
call fcn.0049d21e
mov edx, eax
add esp, 8
test edx, edx
je 0x41b025
mov ecx, edx
lea eax, [esp + 0x420]
sub ecx, eax
sar ecx, 1
add ecx, 5
cmp ecx, 0x8000
jae 0x41b025
movq xmm0, qword [str..ahk]
lea ebp, [esp + 0x420]
movq qword [edx], xmm0
mov ax, word [0x4d8254]
mov word [edx + 8], ax
mov eax, ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x41af24
lea eax, [esp + 0x14]
push eax
push 0
push 0x4000
push 0x4bb840
call dword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
xor esi, esi
test eax, eax
push ebx
cmovns esi, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push esi
push str._ws_s
push 0x201
push eax
call fcn.00419b40
add esp, 0x14
mov ebx, eax
push esi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
test ebx, ebx
js 0x41b025
cmp ebx, 0x201
jae 0x41b025
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea ebp, [esp + 0x18]
mov eax, ebp
push eax
call esi
cmp eax, 0xffffffff
jne 0x41af24
push dword [edi + 0x6c0]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push str.AutoHotkey.chm
call esi
cmp eax, 0xffffffff
je 0x41af24
push 0
push 0
push 0
push 0
push 0x4d55dc
push 0
push 0
push str._ms_its:AutoHotkey.chm::_docs_Welcome.htm_
push str.hh.exe
mov ecx, edi
call fcn.00432300
test eax, eax
jne 0x41b025
cmp word [ebp], 0x2a
jne 0x41afea
cmp word [ebp + 2], 0
jne 0x41af52
mov dword [esp + 0x420], 0x2a
mov eax, 2
mov dword [0x4e59a8], 0
jmp 0x41af5e
mov byte [0x4e5efb], 0
mov eax, 1
mov dword [edi + 0x6c8], eax
cmp dword [edi + 0x6c8], 2
je 0x41af81
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x424]
call fcn.00483530
add esp, 4
cmp word [esp + 0x420], 0
je 0x41b034
lea esi, [esp + 0x420]
lea ecx, [esi + 2]
nop word [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x41afa0
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [esp + 0x10], eax
call fcn.0047f3f0
mov ebx, eax
test ebx, ebx
je 0x41b22f
test esi, esi
mov esi, dword [esp + 0x10]
je 0x41afe2
push esi
lea eax, [esp + 0x424]
push eax
push ebx
call fcn.0049ef90
add esp, 0xc
xor eax, eax
mov word [esi + ebx], ax
jmp 0x41b039
lea eax, [esp + 0x420]
mov dword [edi + 0x6c8], 0
cmp ebp, eax
je 0x41af64
push 0
push eax
push 0x8000
push ebp
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov dword [esp + 0x10], eax
test eax, eax
je 0x41b025
cmp eax, 0x8000
jb 0x41af64
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10410
ret 0xc
mov ebx, 0x4d1e48
lea eax, [esp + 0x420]
mov dword [edi + 0x6ac], ebx
push 0x5c
push eax
call fcn.0049d21e
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x41b11c
mov esi, ebx
lea eax, [esp + 0x420]
sub esi, eax
sar esi, 1
cmp word [esp + 0x420], 0
je 0x41b0d0
cmp esi, 0xffffffff
jne 0x41b08f
mov esi, eax
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x41b080
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [esp + 0x10], eax
call fcn.0047f3f0
mov dword [esp + 0x14], eax
test eax, eax
je 0x41b22f
test esi, esi
mov esi, dword [esp + 0x10]
je 0x41b0c8
push esi
lea ecx, [esp + 0x424]
push ecx
push eax
call fcn.0049ef90
mov eax, dword [esp + 0x20]
add esp, 0xc
xor ecx, ecx
mov word [esi + eax], cx
jmp 0x41b0d5
mov eax, 0x4d1e48
mov dword [edi + 0x6b0], eax
add ebx, 2
jne 0x41b12e
mov eax, 0x4d1e48
mov dword [edi + 0x6b4], eax
mov ecx, 0x4d1efc
mov eax, ebp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41b18c
test dx, dx
je 0x41b118
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41b18c
add eax, 4
add ecx, 4
test dx, dx
jne 0x41b0f2
xor eax, eax
jmp 0x41b191
mov eax, dword [0x4e9ec0]
lea ebx, [esp + 0x420]
mov dword [edi + 0x6b0], eax
cmp word [ebx], 0
je 0x41b0e0
mov esi, ebx
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x41b140
sub esi, ecx
sar esi, 1
lea eax, [esi + esi]
lea ecx, [eax + 2]
mov dword [esp + 0x10], eax
call fcn.0047f3f0
mov dword [esp + 0x14], eax
test eax, eax
je 0x41b22f
test esi, esi
mov esi, dword [esp + 0x10]
je 0x41b181
push esi
push ebx
push eax
call fcn.0049ef90
mov eax, dword [esp + 0x20]
add esp, 0xc
xor ecx, ecx
mov word [esi + eax], cx
jmp 0x41b0e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x41b1bf
cmp dword [edi + 0x6c8], 1
mov eax, str.AutoHotkey_v2.0_beta.4
cmove eax, ebp
push eax
push str.____s
lea eax, [esp + 0x428]
push 0x8000
push eax
call fcn.004820c0
add esp, 0x10
cmp word [esp + 0x420], 0
je 0x41b212
lea esi, [esp + 0x420]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x41b1d4
sub esi, ecx
sar esi, 1
lea ebp, [esi + esi]
lea ecx, [ebp + 2]
call fcn.0047f3f0
mov ebx, eax
test ebx, ebx
je 0x41b22f
test esi, esi
je 0x41b20a
push ebp
lea eax, [esp + 0x424]
push eax
push ebx
call fcn.0049ef90
add esp, 0xc
xor eax, eax
mov word [ebx + ebp], ax
jmp 0x41b217
mov ebx, 0x4d1e48
mov dword [edi + 0x6c4], ebx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10410
ret 0xc
call fcn.00430e20
int3