Function at 0x140028d30
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.1400e0af0
sub rsp, rax
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 + 0x103a0], rdx
test eax, eax
je 0x140028ddf
cmp rdx, 0x8000
jne 0x140028d89
xor eax, eax
add rsp, 0x10470
pop r12
pop rbx
pop rbp
ret
lea rcx, [rbp + 0x360]
call fcn.1400b5ff0
mov qword [rbx + 0xb98], rax
test rax, rax
je 0x140028d7b
lea rcx, [rbp + 0x360]
mov edx, 0x5c
call fcn.1400d77cc
test rax, rax
je 0x140028ddf
lea rcx, [rbp + 0x360]
sub rax, rcx
lea rcx, [rbp + 0x360]
sar rax, 1
mov rdx, rax
call fcn.1400b5ff0
mov qword [rbx + 0xba0], rax
test rax, rax
je 0x140028d7b
mov qword [rsp + 0x10490], rsi
mov qword [rsp + 0x10498], rdi
mov qword [rsp + 0x10468], r13
xor r13d, r13d
mov qword [rsp + 0x10460], r14
lea r14, [0x1400f1514]
test r12, r12
jne 0x140028f66
lea edx, [r13 + 0x5c]
lea rcx, [rbp + 0x360]
call fcn.1400d77cc
mov rsi, rax
test rax, rax
je 0x140029105
lea edx, [r13 + 0x2e]
mov rcx, rax
call fcn.1400d77cc
mov rdx, rax
test rax, rax
je 0x140029105
lea rax, [rbp + 0x360]
mov rcx, rdx
sub rcx, rax
sar rcx, 1
add rcx, 5
cmp rcx, 0x8000
jae 0x140029105
lea rcx, str..ahk
sub rdx, rcx
movzx eax, word [rcx]
add rcx, 2
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x140028e71
lea rcx, [rbp + 0x360]
lea r12, [rbp + 0x360]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140028f66
lea rcx, [rsp + 0x50]
mov rdx, r14
lea r12, [rsp + 0x50]
call fcn.140076ad0
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 0x14002916b
lea rax, [r11 + r11]
sub rax, rsi
lea rcx, [rsp + rax + 0x50]
movzx eax, word [rsi]
add rsi, 2
mov word [rcx + rsi - 2], ax
test ax, ax
jne 0x140028ee0
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140028f66
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 0x140028f66
mov qword [rsp + 0x48], r13
mov byte [rsp + 0x40], r13b
mov byte [rsp + 0x38], r13b
lea rax, [0x1400f86e0]
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.14004fa70
test eax, eax
jne 0x140029105
cmp word [r12], 0x2a
jne 0x140028fb3
cmp word [r12 + 2], r13w
jne 0x140028fa0
mov dword [rbx + 0xbb0], 2
mov dword [rbp + 0x360], gethostbyaddr
mov dword [0x14012ac38], 4
mov dword [0x14012ac4c], 1
jmp 0x140028fba
mov dword [rbx + 0xbb0], 1
mov byte [0x140124b22], r13b
jmp 0x140028fba
mov dword [rbx + 0xbb0], r13d
lea rax, [rbp + 0x360]
cmp r12, rax
je 0x140029005
cmp dword [rbx + 0xbb0], 1
je 0x140029005
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 + 0x103a0], rdx
test eax, eax
je 0x140029105
cmp rdx, 0x8000
jae 0x140029105
cmp dword [rbx + 0xbb0], 2
je 0x140029021
lea rdx, [rbp + 0x103a0]
lea rcx, [rbp + 0x360]
call fcn.1400ba580
cmp word [rbp + 0x360], r13w
je 0x140029093
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.1400b60b0
mov r14, rax
test rax, rax
jne 0x140029077
lea r8, [rbp + 0x360]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012c5c0]
call fcn.14004e5e0
mov r14, r13
jmp 0x140029093
test rsi, rsi
je 0x14002908e
lea rdx, [rbp + 0x360]
mov r8, rdi
mov rcx, rax
call fcn.1400d7a40
mov word [rdi + r14], r13w
mov qword [rbx + 0xb80], r14
test r14, r14
je 0x140029105
lea rcx, [rbp + 0x360]
mov edx, 0x5c
call fcn.1400d77cc
mov rdi, rax
test rax, rax
je 0x1400290e6
lea rax, [rbp + 0x360]
mov rdx, rdi
lea rcx, [rbp + 0x360]
sub rdx, rax
sar rdx, 1
call fcn.1400b5ff0
mov qword [rbx + 0xb88], rax
test rax, rax
je 0x140029105
add rdi, 2
jmp 0x1400290ed
lea rdi, [rbp + 0x360]
or rdx, 0xffffffffffffffff
mov rcx, rdi
call fcn.1400b5ff0
mov qword [rbx + 0xb90], rax
test rax, rax
jne 0x140029109
xor eax, eax
jmp 0x14002916b
lea rdi, [0x1400f1608]
mov rsi, r12
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x14002914a
cmp dword [rbx + 0xbb0], 1
lea rax, str.AutoHotkey_v1.1.37.02
lea r8, str.____s
cmovne r12, rax
lea rcx, [rbp + 0x360]
mov edx, 0x8000
mov r9, r12
call fcn.1400b9390
lea rcx, [rbp + 0x360]
or rdx, 0xffffffffffffffff
call fcn.1400b5ff0
test rax, rax
mov qword [rbx + 0xba8], rax
setne r13b
mov eax, r13d
mov r13, qword [rsp + 0x10468]
mov rdi, qword [rsp + 0x10498]
mov rsi, qword [rsp + 0x10490]
mov r14, qword [rsp + 0x10460]
add rsp, 0x10470
pop r12
pop rbx
pop rbp
ret