Function at 0x140028b20
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.1400e0020
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 0x140028bd6
cmp rdx, 0x8000
jne 0x140028b80
xor eax, eax
add rsp, 0x10470
pop r12
pop rbx
pop rbp
ret
lea rcx, [rbp + 0x360]
call fcn.1400b4da0
mov qword [rbx + 0xb98], rax
test rax, rax
je 0x140028b72
lea rcx, [rbp + 0x360]
mov edx, 0x5c
call fcn.1400d63cc
test rax, rax
je 0x140028bd6
lea rcx, [rbp + 0x360]
sub rax, rcx
lea rcx, [rbp + 0x360]
sar rax, 1
mov rdx, rax
call fcn.1400b4da0
mov qword [rbx + 0xba0], rax
test rax, rax
je 0x140028b72
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, [0x1400f0524]
test r12, r12
jne 0x140028d66
lea edx, [r13 + 0x5c]
lea rcx, [rbp + 0x360]
call fcn.1400d63cc
mov rsi, rax
test rax, rax
je 0x140028f05
lea edx, [r13 + 0x2e]
mov rcx, rax
call fcn.1400d63cc
mov rdx, rax
test rax, rax
je 0x140028f05
lea rax, [rbp + 0x360]
mov rcx, rdx
sub rcx, rax
sar rcx, 1
add rcx, 5
cmp rcx, 0x8000
jae 0x140028f05
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 0x140028c70
lea rcx, [rbp + 0x360]
lea r12, [rbp + 0x360]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140028d66
lea rcx, [rsp + 0x50]
mov rdx, r14
lea r12, [rsp + 0x50]
call fcn.140076320
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 0x140028f6b
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 0x140028ce0
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140028d66
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 0x140028d66
mov qword [rsp + 0x48], r13
mov byte [rsp + 0x40], r13b
mov byte [rsp + 0x38], r13b
lea rax, [0x1400f7618]
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.14004f410
test eax, eax
jne 0x140028f05
cmp word [r12], 0x2a
jne 0x140028db3
cmp word [r12 + 2], r13w
jne 0x140028da0
mov dword [rbx + 0xbb0], 2
mov dword [rbp + 0x360], gethostbyaddr
mov dword [0x140129b94], 4
mov dword [0x140129ba8], 1
jmp 0x140028dba
mov dword [rbx + 0xbb0], 1
mov byte [0x140123b22], r13b
jmp 0x140028dba
mov dword [rbx + 0xbb0], r13d
lea rax, [rbp + 0x360]
cmp r12, rax
je 0x140028e05
cmp dword [rbx + 0xbb0], 1
je 0x140028e05
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 0x140028f05
cmp rdx, 0x8000
jae 0x140028f05
cmp dword [rbx + 0xbb0], 2
je 0x140028e21
lea rdx, [rbp + 0x10390]
lea rcx, [rbp + 0x360]
call fcn.1400b9310
cmp word [rbp + 0x360], r13w
je 0x140028e93
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.1400b4e60
mov r14, rax
test rax, rax
jne 0x140028e77
lea r8, [rbp + 0x360]
lea rdx, str.Out_of_memory.
lea rcx, [0x14012b510]
call fcn.14004e080
mov r14, r13
jmp 0x140028e93
test rsi, rsi
je 0x140028e8e
lea rdx, [rbp + 0x360]
mov r8, rdi
mov rcx, rax
call fcn.1400d6960
mov word [rdi + r14], r13w
mov qword [rbx + 0xb80], r14
test r14, r14
je 0x140028f05
lea rcx, [rbp + 0x360]
mov edx, 0x5c
call fcn.1400d63cc
mov rdi, rax
test rax, rax
je 0x140028ee6
lea rax, [rbp + 0x360]
mov rdx, rdi
lea rcx, [rbp + 0x360]
sub rdx, rax
sar rdx, 1
call fcn.1400b4da0
mov qword [rbx + 0xb88], rax
test rax, rax
je 0x140028f05
add rdi, 2
jmp 0x140028eed
lea rdi, [rbp + 0x360]
or rdx, 0xffffffffffffffff
mov rcx, rdi
call fcn.1400b4da0
mov qword [rbx + 0xb90], rax
test rax, rax
jne 0x140028f09
xor eax, eax
jmp 0x140028f6b
lea rdi, [0x1400f0618]
mov rsi, r12
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x140028f4a
cmp dword [rbx + 0xbb0], 1
lea rax, str.AutoHotkey_v1.1.34.03
lea r8, str.____s
cmovne r12, rax
lea rcx, [rbp + 0x360]
mov edx, 0x8000
mov r9, r12
call fcn.1400b8120
lea rcx, [rbp + 0x360]
or rdx, 0xffffffffffffffff
call fcn.1400b4da0
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