Function at 0x140044ca0
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 [0x1401427d8]
mov r8d, 0xa
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rcx, qword [0x1401427d8]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x1401427d8]
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.1400bd8d0
mov esi, eax
lea rcx, [rsi + 1]
call fcn.1400dc1b8
lea rcx, [rsi + 1]
mov qword [0x1401436e8], rax
call fcn.1400dc1b8
mov rbx, qword [rbp + 0x370]
mov r8d, esi
mov rcx, qword [0x1401436e8]
mov rdx, rbx
mov rdi, rax
mov qword [0x1401436e0], rax
call fcn.1400d8380
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call fcn.1400d8380
mov rcx, rbx
call fcn.1400dc1c0
mov rax, qword [0x1401436e8]
mov rcx, qword [0x1401436e0]
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, [0x1401436f0]
call fcn.140045110
xor r9d, r9d
lea rax, [rbp + 0x140]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r9 + 5]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xor esi, esi
test eax, eax
je 0x140044dd7
mov word [rbp + 0x140], si
mov rbx, 0xffffffffffffffff
lea rcx, [rbp + 0x140]
mov rax, rbx
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], si
jne 0x140044df0
test rax, rax
je 0x140044e11
cmp word [rbp + rax*2 + 0x13e], 0x5c
jne 0x140044e11
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 0x140044e20
lea r9, str.AutoHotkeyLib_
lea r8, [rsp + 0x30]
lea rdx, [0x140143700]
call fcn.140045110
mov r8, qword [r14 + 0xbd0]
lea r9, str.Lib_
lea rdx, [0x140143710]
call fcn.140045110
mov ecx, 0x40c
call fcn.1400dc1b8
mov r8d, 0x104
mov qword [0x140143720], rax
lea rdx, [rbp + 0x140]
xor ecx, ecx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test rdi, rdi
je 0x140044ec0
lea rax, [rbp + 0x140]
sub rdi, rax
lea rcx, [rbp + 0x140]
nop word [rax + rax]
movzx eax, word [rcx]
mov word [rdi + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x140044eb0
mov rcx, qword [0x140143720]
mov edx, 0x5c
call fcn.1400d796c
movups xmm0, xmmword [str.Lib.lnk]
mov edx, 0x5c
movups xmmword [rax + 2], xmm0
mov rcx, qword [0x140143720]
call fcn.1400d796c
xor ecx, ecx
mov word [rax + 0x10], si
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea rax, [rbp + 0x378]
lea r9, [0x1400fb2a0]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400fb2b0]
lea r8d, [rdx + 1]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x140044ff3
mov rcx, qword [rbp + 0x378]
lea r8, [rbp + 0x370]
lea rdx, [0x1400fb2c0]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x140044fe6
mov rcx, qword [rbp + 0x370]
xor r8d, r8d
mov rdx, qword [0x140143720]
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x140044fd9
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 [0x140143720]
lea rcx, [rbp + 0x140]
nop word [rax + rax]
movzx eax, word [rcx]
lea rcx, [rcx + 2]
mov word [rdx], ax
lea rdx, [rdx + 2]
test ax, ax
jne 0x140044fa0
lea rax, [rbp + 0x140]
mov rcx, rbx
nop dword [rax]
cmp word [rax + rcx*2 + 2], si
lea rcx, [rcx + 1]
jne 0x140044fc0
mov rax, qword [0x140143720]
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 [0x140143720]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
mov r8d, eax
and ecx, 1
je 0x14004501a
mov eax, 0x52
mov word [rsp + 0x30], ax
test r8b, 0x20
je 0x14004502c
mov edx, 0x41
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 4
je 0x14004503e
mov edx, 0x53
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 2
je 0x140045050
mov edx, 0x48
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, r8b
jns 0x140045061
mov edx, 0x4e
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
mov r9d, 0x44
test r8b, 0x10
je 0x140045075
mov word [rsp + rcx*2 + 0x30], r9w
inc ecx
bt r8d, 0xc
jae 0x140045088
mov edx, 0x4f
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 0xb
jae 0x14004509b
mov edx, 0x43
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 8
jae 0x1400450b0
mov r8d, 0x54
mov word [rsp + rcx*2 + 0x30], r8w
inc ecx
mov word [rsp + rcx*2 + 0x30], si
mov edx, r9d
lea rcx, [rsp + 0x30]
call fcn.1400d796c
test rax, rax
jne 0x1400450d7
mov qword [0x140143728], rsi
mov qword [0x140143720], rsi
jmp 0x1400450f0
mov rax, qword [0x140143720]
nop
inc rbx
cmp word [rax + rbx*2], si
jne 0x1400450e0
mov qword [0x140143728], 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