Function at 0x14004b810
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 [0x140127b08]
mov r8d, 0xa
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rcx, qword [0x140127b08]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, qword [0x140127b08]
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.1400d23f0
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 [0x140128a18], 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 [0x140128a18]
mov rdx, rbx
mov rdi, rax
mov qword [0x140128a10], 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 [0x140128a18]
mov rcx, qword [0x140128a10]
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, [0x140128a20]
call fcn.14004bc80
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 0x14004b94a
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 0x14004b960
test rax, rax
je 0x14004b981
cmp word [rbp + rax*2 + 0x13e], 0x5c
jne 0x14004b981
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 0x14004b990
lea r9, str.AutoHotkeyLib_
lea r8, [rsp + 0x30]
lea rdx, [0x140128a30]
call fcn.14004bc80
mov r8, qword [r14 + 0xbd0]
lea r9, str.Lib_
lea rdx, [0x140128a40]
call fcn.14004bc80
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 [0x140128a50], rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test rdi, rdi
je 0x14004ba30
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 0x14004ba20
mov rcx, qword [0x140128a50]
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 [0x140128a50]
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, [0x1400ef600]
mov qword [rsp + 0x20], rax
lea rcx, [0x1400ef610]
lea r8d, [rdx + 1]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14004bb63
mov rcx, qword [rbp + 0x378]
lea r8, [rbp + 0x370]
lea rdx, [0x1400ef620]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x14004bb56
mov rcx, qword [rbp + 0x370]
xor r8d, r8d
mov rdx, qword [0x140128a50]
mov rax, qword [rcx]
call qword [rax + 0x28]
test eax, eax
js 0x14004bb49
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 [0x140128a50]
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 0x14004bb10
lea rax, [rbp + 0x140]
mov rcx, rbx
nop dword [rax]
cmp word [rax + rcx*2 + 2], si
lea rcx, [rcx + 1]
jne 0x14004bb30
mov rax, qword [0x140128a50]
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 [0x140128a50]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
mov r8d, eax
and ecx, 1
je 0x14004bb8a
mov eax, 0x52
mov word [rsp + 0x30], ax
test r8b, 0x20
je 0x14004bb9c
mov edx, 0x41
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 4
je 0x14004bbae
mov edx, 0x53
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, 2
je 0x14004bbc0
mov edx, 0x48
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
test r8b, r8b
jns 0x14004bbd1
mov edx, 0x4e
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
mov r9d, 0x44
test r8b, 0x10
je 0x14004bbe5
mov word [rsp + rcx*2 + 0x30], r9w
inc ecx
bt r8d, 0xc
jae 0x14004bbf8
mov edx, 0x4f
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 0xb
jae 0x14004bc0b
mov edx, 0x43
mov word [rsp + rcx*2 + 0x30], dx
inc ecx
bt r8d, 8
jae 0x14004bc20
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 0x14004bc48
mov qword [0x140128a58], rsi
mov qword [0x140128a50], rsi
jmp 0x14004bc60
mov rax, qword [0x140128a50]
nop
inc rbx
cmp word [rax + rbx*2], si
jne 0x14004bc50
mov qword [0x140128a58], 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