Function at 0x140028d10
Capabilities:
Check if file exists
Get file attributes
Set current directory

Disassembly:
push rbp
push rbx
push r12
lea rbp, [rsp - 0x10370]
mov eax, 0x10470
call fcn.1400e08d0
sub rsp, rax
mov byte [rcx + 0xbb6], r8b
mov r12, rdx
mov rbx, rcx
lea rdx, [rbp + 0x360]
mov r8d, 0x8000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, eax
mov qword [rbp + 0x10390], rdx
test eax, eax
je 0x140028dc6
cmp rdx, 0x8000
jne 0x140028d70
xor eax, eax
add rsp, 0x10470
pop r12
pop rbx
pop rbp
ret
lea rcx, [rbp + 0x360]
call fcn.1400b5530
mov qword [rbx + 0xb98], rax
test rax, rax
je 0x140028d62
lea rcx, [rbp + 0x360]
mov edx, 0x5c
call fcn.1400d6d1c
test rax, rax
je 0x140028dc6
lea rcx, [rbp + 0x360]
sub rax, rcx
lea rcx, [rbp + 0x360]
sar rax, 1
mov rdx, rax
call fcn.1400b5530
mov qword [rbx + 0xba0], rax
test rax, rax
je 0x140028d62
mov qword [rsp + 0x10498], rsi
mov qword [rsp + 0x104a0], rdi
mov qword [rsp + 0x10468], r13
xor r13d, r13d
mov qword [rsp + 0x10460], r14
lea r14, [0x1400f1604]
test r12, r12
jne 0x140028f56
lea edx, [r13 + 0x5c]
lea rcx, [rbp + 0x360]
call fcn.1400d6d1c
mov rsi, rax
test rax, rax
je 0x1400290f5
lea edx, [r13 + 0x2e]
mov rcx, rax
call fcn.1400d6d1c
mov rdx, rax
test rax, rax
je 0x1400290f5
lea rax, [rbp + 0x360]
mov rcx, rdx
sub rcx, rax
sar rcx, 1
add rcx, 5
cmp rcx, 0x8000
jae 0x1400290f5
lea rcx, str..ahk
sub rdx, rcx
nop dword [rax + rax]
movzx eax, word [rcx]
add rcx, 2
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x140028e60
lea rcx, [rbp + 0x360]
lea r12, [rbp + 0x360]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140028f56
lea rcx, [rsp + 0x50]
mov rdx, r14
lea r12, [rsp + 0x50]
call fcn.140076950
or rcx, 0xffffffffffffffff
mov rdi, rsi
mov r11, rax
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea rdx, [rcx + r11]
cmp rdx, 0x201
ja 0x14002915b
lea rax, [r11 + r11]
sub rax, rsi
lea rcx, [rsp + rax + 0x50]
nop
movzx eax, word [rsi]
add rsi, 2
mov word [rcx + rsi - 2], ax
test ax, ax
jne 0x140028ed0
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140028f56
mov rcx, qword [rbx + 0xba0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea rcx, str.AutoHotkey.chm
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140028f56
mov qword [rsp + 0x48], r13
mov byte [rsp + 0x40], r13b
mov byte [rsp + 0x38], r13b
lea rax, [0x1400f86f0]
mov qword [rsp + 0x30], r13
lea r8, str._ms_its:AutoHotkey.chm::_docs_Welcome.htm_
mov qword [rsp + 0x28], rax
lea rdx, str.hh.exe
xor r9d, r9d
mov rcx, rbx
mov byte [rsp + 0x20], r13b
call fcn.14004f960
test eax, eax
jne 0x1400290f5
cmp word [r12], 0x2a
jne 0x140028fa3
cmp word [r12 + 2], r13w
jne 0x140028f90
mov dword [rbx + 0xbb0], 2
mov dword [rbp + 0x360], gethostbyaddr
mov dword [0x14012abb4], 4
mov dword [0x14012abc8], 1
jmp 0x140028faa
mov dword [rbx + 0xbb0], 1
mov byte [0x140124b22], r13b
jmp 0x140028faa
mov dword [rbx + 0xbb0], r13d
lea rax, [rbp + 0x360]
cmp r12, rax
je 0x140028ff5
cmp dword [rbx + 0xbb0], 1
je 0x140028ff5
lea r8, [rbp + 0x360]
xor r9d, r9d
mov edx, 0x8000
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov edx, eax
mov qword [rbp + 0x10390], rdx
test eax, eax
je 0x1400290f5
cmp rdx, 0x8000
jae 0x1400290f5
cmp dword [rbx + 0xbb0], 2
je 0x140029011
lea rdx, [rbp + 0x10390]
lea rcx, [rbp + 0x360]
call fcn.1400b9ac0
cmp word [rbp + 0x360], r13w
je 0x140029083
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp + 0x360]
repne scasw ax, word [rdi]
not rcx
lea rdi, [rcx + rcx - 2]
lea rsi, [rcx - 1]
lea rcx, [rdi + 2]
call fcn.1400b55f0
mov r14, rax
test rax, rax
jne 0x140029067
lea r8, [rbp + 0x360]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c540]
call fcn.14004e5d0
mov r14, r13
jmp 0x140029083
test rsi, rsi
je 0x14002907e
lea rdx, [rbp + 0x360]
mov r8, rdi
mov rcx, rax
call fcn.1400d72b0
mov word [rdi + r14], r13w
mov qword [rbx + 0xb80], r14
test r14, r14
je 0x1400290f5
lea rcx, [rbp + 0x360]
mov edx, 0x5c
call fcn.1400d6d1c
mov rdi, rax
test rax, rax
je 0x1400290d6
lea rax, [rbp + 0x360]
mov rdx, rdi
lea rcx, [rbp + 0x360]
sub rdx, rax
sar rdx, 1
call fcn.1400b5530
mov qword [rbx + 0xb88], rax
test rax, rax
je 0x1400290f5
add rdi, 2
jmp 0x1400290dd
lea rdi, [rbp + 0x360]
or rdx, 0xffffffffffffffff
mov rcx, rdi
call fcn.1400b5530
mov qword [rbx + 0xb90], rax
test rax, rax
jne 0x1400290f9
xor eax, eax
jmp 0x14002915b
lea rdi, [0x1400f1618]
mov rsi, r12
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x14002913a
cmp dword [rbx + 0xbb0], 1
lea rax, str.AutoHotkey_v1.1.36.02
lea r8, str.____s
cmovne r12, rax
lea rcx, [rbp + 0x360]
mov edx, 0x8000
mov r9, r12
call fcn.1400b88d0
lea rcx, [rbp + 0x360]
or rdx, 0xffffffffffffffff
call fcn.1400b5530
test rax, rax
mov qword [rbx + 0xba8], rax
setne r13b
mov eax, r13d
mov r13, qword [rsp + 0x10468]
mov rdi, qword [rsp + 0x104a0]
mov rsi, qword [rsp + 0x10498]
mov r14, qword [rsp + 0x10460]
add rsp, 0x10470
pop r12
pop rbx
pop rbp
ret