Function at 0x14004d190
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 [0x140160808]
mov r8d, 0xa
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rcx, qword [0x140160808]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x140160808]
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.1400d4f50
mov esi, eax
lea rcx, [rsi + 1]
call fcn.1400f75c0
lea rcx, [rsi + 1]
mov qword [0x140161718], rax
call fcn.1400f75c0
mov rbx, qword [rbp + 0x370]
mov r8d, esi
mov rcx, qword [0x140161718]
mov rdx, rbx
mov rdi, rax
mov qword [0x140161710], rax
call fcn.1400f1320
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call fcn.1400f1320
mov rcx, rbx
call fcn.1400f75c8
mov rax, qword [0x140161718]
mov rcx, qword [0x140161710]
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, [0x140161720]
call fcn.14004d600
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 0x14004d2c7
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 0x14004d2e0
test rax, rax
je 0x14004d301
cmp word [rbp + rax*2 + 0x13e], 0x5c
jne 0x14004d301
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 0x14004d310
lea r9, str.AutoHotkeyLib_
lea r8, [rsp + 0x30]
lea rdx, [0x140161730]
call fcn.14004d600
mov r8, qword [r14 + 0xbd0]
lea r9, str.Lib_
lea rdx, [0x140161740]
call fcn.14004d600
mov ecx, 0x40c
call fcn.1400f75c0
mov r8d, 0x104
mov qword [0x140161750], rax
lea rdx, [rbp + 0x140]
xor ecx, ecx
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test rdi, rdi
je 0x14004d3b0
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 0x14004d3a0
mov rcx, qword [0x140161750]
mov edx, 0x5c
call fcn.1400f0974
movups xmm0, xmmword [str.Lib.lnk]
mov edx, 0x5c
movups xmmword [rax + 2], xmm0
mov rcx, qword [0x140161750]
call fcn.1400f0974
xor ecx, ecx
mov word [rax + 0x10], si
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea rax, [rbp + 0x378]
lea r9, [0x1401192e0]
mov qword [rsp + 0x20], rax
lea rcx, [0x1401192f0]
lea r8d, [rdx + 1]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14004d4e3
mov rcx, qword [rbp + 0x378]
lea r8, [rbp + 0x370]
lea rdx, [0x140119300]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x14004d4d6
mov rcx, qword [rbp + 0x370]
xor r8d, r8d
mov rdx, qword [0x140161750]
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x14004d4c9
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 [0x140161750]
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 0x14004d490
lea rax, [rbp + 0x140]
mov rcx, rbx
nop dword [rax]
cmp word [rax + rcx*2 + 2], si
lea rcx, [rcx + 1]
jne 0x14004d4b0
mov rax, qword [0x140161750]
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 [0x140161750]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
mov r8d, eax
and ecx, 1
je 0x14004d50a
mov eax, 0x52
mov word [rsp + 0x30], ax
test r8b, 0x20
je 0x14004d51c
mov edx, 0x41
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 4
je 0x14004d52e
mov edx, 0x53
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 2
je 0x14004d540
mov edx, 0x48
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, r8b
jns 0x14004d551
mov edx, 0x4e
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
mov r9d, 0x44
test r8b, 0x10
je 0x14004d565
mov word [rsp + rcx*2 + 0x30], r9w
inc ecx
bt r8d, 0xc
jae 0x14004d578
mov edx, 0x4f
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 0xb
jae 0x14004d58b
mov edx, 0x43
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 8
jae 0x14004d5a0
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.1400f0974
test rax, rax
jne 0x14004d5c7
mov qword [0x140161758], rsi
mov qword [0x140161750], rsi
jmp 0x14004d5e0
mov rax, qword [0x140161750]
nop
inc rbx
cmp word [rax + rbx*2], si
jne 0x14004d5d0
mov qword [0x140161758], 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