Function at 0x14004ea60
Capabilities:
Extract resource via kernel32 functions
Get common file path
Get file attributes

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x10], rdx
push rbp
push rdi
push r14
lea rbp, [rsp - 0x350]
sub rsp, 0x450
mov r14, rcx
lea rdx, str.C974C3B7677A402D93B047DA402587C7
mov rcx, qword [0x140132b60]
mov r8d, 0xa
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rcx, qword [0x140132b60]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x140132b60]
mov rdx, rbx
mov edi, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
xor r9d, r9d
lea rdx, [rbp + 0x370]
mov rcx, rax
mov r8d, edi
call fcn.1400db840
mov esi, eax
lea rcx, [rsi + 1]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea rcx, [rsi + 1]
mov qword [0x140133a90], rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, qword [rbp + 0x370]
mov r8d, esi
mov rcx, qword [0x140133a90]
mov rdx, rbx
mov rdi, rax
mov qword [0x140133a88], rax
call sub.VCRUNTIME140.dll_memcpy
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [0x140133a90]
mov rcx, qword [0x140133a88]
mov byte [rsi + rax], 0
mov byte [rsi + rcx], 0
call qword [sym.imp.USER32.dll_CharLowerA]
mov r8, qword [r14 + 0xbb8]
lea r9, str.Lib_
lea rdx, [0x140133aa0]
call fcn.14004eee0
lea rax, [rbp + 0x140]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 5
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xor esi, esi
test eax, eax
je 0x14004eb9b
mov word [rbp + 0x140], si
mov rbx, 0xffffffffffffffff
lea rcx, [rbp + 0x140]
mov rax, rbx
nop dword [rax]
inc rax
cmp word [rcx + rax*2], si
jne 0x14004ebb0
test rax, rax
je 0x14004ebd1
cmp word [rbp + rax*2 + 0x13e], 0x5c
jne 0x14004ebd1
mov word [rbp + rax*2 + 0x13e], si
mov rcx, rsi
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rbp + rcx + 0x140]
mov word [rsp + rcx + 0x30], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x14004ebe0
lea r9, str.AutoHotkeyLib_
lea r8, [rsp + 0x30]
lea rdx, [0x140133ab0]
call fcn.14004eee0
mov r8, qword [r14 + 0xbd0]
lea r9, str.Lib_
lea rdx, [0x140133ac0]
call fcn.14004eee0
mov ecx, 0x40c
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8d, 0x104
lea rdx, [rbp + 0x140]
xor ecx, ecx
mov qword [0x140133ad0], rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test rdi, rdi
je 0x14004ec80
lea rax, [rbp + 0x140]
sub rdi, rax
lea rcx, [rbp + 0x140]
nop dword [rax + rax]
movzx eax, word [rcx]
mov word [rdi + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x14004ec70
mov rcx, qword [0x140133ad0]
mov edx, 0x5c
call qword [sym.imp.VCRUNTIME140.dll_wcsrchr]
movups xmm0, xmmword [str.Lib.lnk]
mov edx, 0x5c
movups xmmword [rax + 2], xmm0
mov rcx, qword [0x140133ad0]
call qword [sym.imp.VCRUNTIME140.dll_wcsrchr]
xor ecx, ecx
mov word [rax + 0x10], si
call qword [sym.imp.ole32.dll_CoInitialize]
lea rax, [rbp + 0x378]
xor edx, edx
lea r9, [0x1400f9600]
mov qword [rsp + 0x20], rax
mov r8d, 1
lea rcx, [0x1400f9610]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14004edb3
mov rcx, qword [rbp + 0x378]
lea r8, [rbp + 0x370]
lea rdx, [0x1400f9620]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x14004eda6
mov rcx, qword [rbp + 0x370]
xor r8d, r8d
mov rdx, qword [0x140133ad0]
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x14004ed99
mov rcx, qword [rbp + 0x378]
lea rdx, [rbp + 0x140]
xor r9d, r9d
mov dword [rsp + 0x20], 2
mov r8d, 0x104
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rdx, qword [0x140133ad0]
lea rcx, [rbp + 0x140]
nop dword [rax + rax]
movzx eax, word [rcx]
lea rcx, [rcx + 2]
mov word [rdx], ax
lea rdx, [rdx + 2]
test ax, ax
jne 0x14004ed60
lea rax, [rbp + 0x140]
mov rcx, rbx
nop dword [rax]
cmp word [rax + rcx*2 + 2], si
lea rcx, [rcx + 1]
jne 0x14004ed80
mov rax, qword [0x140133ad0]
mov dword [rax + rcx*2], 0x5c
mov rcx, qword [rbp + 0x370]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
mov rcx, qword [rbp + 0x378]
mov rax, qword [rcx]
call qword [rax + reloc.WSOCK32.dll_recv]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov rcx, qword [0x140133ad0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
mov r8d, eax
and ecx, 1
je 0x14004edda
mov eax, 0x52
mov word [rsp + 0x30], ax
test r8b, 0x20
je 0x14004edec
mov edx, 0x41
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 4
je 0x14004edfe
mov edx, 0x53
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 2
je 0x14004ee10
mov edx, 0x48
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, r8b
jns 0x14004ee21
mov edx, 0x4e
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
mov r9d, 0x44
test r8b, 0x10
je 0x14004ee35
mov word [rsp + rcx*2 + 0x30], r9w
inc ecx
bt r8d, 0xc
jae 0x14004ee48
mov edx, 0x4f
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 0xb
jae 0x14004ee5e
movsxd rax, ecx
mov edx, 0x43
inc ecx
mov word [rsp + rax*2 + 0x30], dx
bt r8d, 8
jae 0x14004ee76
movsxd rax, ecx
mov r8d, 0x54
inc ecx
mov word [rsp + rax*2 + 0x30], r8w
movsxd rax, ecx
mov edx, r9d
lea rcx, [rsp + 0x30]
mov word [rsp + rax*2 + 0x30], si
call qword [sym.imp.VCRUNTIME140.dll_wcsrchr]
test rax, rax
jne 0x14004eea1
mov qword [0x140133ad8], rsi
mov qword [0x140133ad0], rsi
jmp 0x14004eec0
mov rax, qword [0x140133ad0]
nop dword [rax + rax]
inc rbx
cmp word [rax + rbx*2], si
jne 0x14004eeb0
mov qword [0x140133ad8], rbx
lea r11, [rsp + 0x450]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret