Function at 0x1400450a0
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 [0x140113af8]
mov r8d, 0xa
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rcx, qword [0x140113af8]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x140113af8]
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.1400be240
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 [0x140114a08], 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 [0x140114a08]
mov rdx, rbx
mov rdi, rax
mov qword [0x140114a00], 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 [0x140114a08]
mov rcx, qword [0x140114a00]
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, [0x140114a10]
call fcn.140045510
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 0x1400451da
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 0x1400451f0
test rax, rax
je 0x140045211
cmp word [rbp + rax*2 + 0x13e], 0x5c
jne 0x140045211
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 0x140045220
lea r9, str.AutoHotkeyLib_
lea r8, [rsp + 0x30]
lea rdx, [0x140114a20]
call fcn.140045510
mov r8, qword [r14 + 0xbd0]
lea r9, str.Lib_
lea rdx, [0x140114a30]
call fcn.140045510
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 [0x140114a40], rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test rdi, rdi
je 0x1400452c0
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 0x1400452b0
mov rcx, qword [0x140114a40]
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 [0x140114a40]
call qword [sym.imp.VCRUNTIME140.dll_wcsrchr]
xor ecx, ecx
mov word [rax + 0x10], si
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea rax, [rbp + 0x378]
lea r9, [0x1400da5c0]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400da5d0]
lea r8d, [rdx + 1]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1400453f3
mov rcx, qword [rbp + 0x378]
lea r8, [rbp + 0x370]
lea rdx, [0x1400da5e0]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x1400453e6
mov rcx, qword [rbp + 0x370]
xor r8d, r8d
mov rdx, qword [0x140114a40]
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x1400453d9
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 [0x140114a40]
lea rcx, [rbp + 0x140]
nop dword [rax]
movzx eax, word [rcx]
lea rcx, [rcx + 2]
mov word [rdx], ax
lea rdx, [rdx + 2]
test ax, ax
jne 0x1400453a0
lea rax, [rbp + 0x140]
mov rcx, rbx
nop dword [rax]
cmp word [rax + rcx*2 + 2], si
lea rcx, [rcx + 1]
jne 0x1400453c0
mov rax, qword [0x140114a40]
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 [0x140114a40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
mov r8d, eax
and ecx, 1
je 0x14004541a
mov eax, 0x52
mov word [rsp + 0x30], ax
test r8b, 0x20
je 0x14004542c
mov edx, 0x41
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 4
je 0x14004543e
mov edx, 0x53
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 2
je 0x140045450
mov edx, 0x48
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, r8b
jns 0x140045461
mov edx, 0x4e
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
mov r9d, 0x44
test r8b, 0x10
je 0x140045475
mov word [rsp + rcx*2 + 0x30], r9w
inc ecx
bt r8d, 0xc
jae 0x140045488
mov edx, 0x4f
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 0xb
jae 0x14004549b
mov edx, 0x43
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 8
jae 0x1400454b0
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 qword [sym.imp.VCRUNTIME140.dll_wcsrchr]
test rax, rax
jne 0x1400454d8
mov qword [0x140114a48], rsi
mov qword [0x140114a40], rsi
jmp 0x1400454f0
mov rax, qword [0x140114a40]
nop
inc rbx
cmp word [rax + rbx*2], si
jne 0x1400454e0
mov qword [0x140114a48], 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