Function at 0x180012a88
Capabilities:
Check if file exists
Extract resource via kernel32 functions
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r13
push r14
push r15
sub rsp, 0x120
mov rax, qword [0x180048040]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rdi, rcx
xor r13d, r13d
mov qword [rsp + 0x48], r13
lea rdx, [0x1800481d0]
cmp qword [reloc.OLEAUT32.dll_VariantInit], 7
cmova rdx, qword [0x1800481d0]
movups xmm1, xmmword [rcx]
mov rcx, qword [rcx + 8]
cmp rcx, qword [0x1800481e0]
jne 0x180012b17
test rcx, rcx
je 0x180012b09
movq r8, xmm1
sub r8, rdx
movzx eax, word [rdx + r8]
cmp ax, word [rdx]
jne 0x180012b17
add rdx, 2
sub rcx, 1
jne 0x180012af5
cmp qword [0x18004e2f8], r13
je 0x180012b2c
jmp 0x1800133f6
mov r8, qword [rdi + 8]
movq rdx, xmm1
lea rcx, [0x1800481d0]
call fcn.180009c50
mov eax, dword [0x18004e270]
mov r14d, 0x55f0
cmp eax, r14d
jae 0x180012b4d
mov rax, qword [0x18004de90]
mov rbx, qword [rax + 0xd8]
jmp 0x180012b75
cmp eax, 0x585d
jae 0x180012b61
mov rax, qword [0x18004de90]
mov rcx, qword [rax + 0x28]
jmp 0x180012b71
cmp eax, 0x65f4
mov rax, qword [0x18004de90]
mov rcx, qword [rax + 0x30]
mov rbx, qword [rcx + 0x20]
mov rax, qword [0x18004e300]
cmp rax, rbx
je 0x180012ba8
test rax, rax
je 0x180012b92
lea rcx, [0x18004e300]
call fcn.1800078b8
mov qword [0x18004e300], rbx
test rbx, rbx
je 0x180012ba8
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
cmp qword [rdi + 8], r13
je 0x180012ce2
mov rcx, qword [rdi]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180012ce2
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0x100], rax
dec rax
cmp rax, 0xfffffffffffffffd
seta al
mov rcx, qword [rsp + 0x138]
test al, al
jne 0x180013424
mov qword [rsp + 0xa8], r13
lea rdx, [rsp + 0xa8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov rcx, qword [rsp + 0x138]
test eax, eax
je 0x180013429
mov rdi, qword [rsp + 0xa8]
mov rcx, rdi
call fcn.18001bb70
mov rsi, rax
test rax, rax
je 0x180012c5f
mov r8, rdi
xor edx, edx
mov rcx, rax
call sub.ucrtbase.dll_memset
jmp 0x180012c62
mov rsi, r13
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov r8d, dword [rsp + 0xa8]
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, qword [rsp + 0x138]
test eax, eax
je 0x18001342f
mov edx, dword [rsp + 0xa8]
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_SHCreateMemStream]
mov rdi, rax
mov qword [rsp + 0x48], rax
test rsi, rsi
je 0x180012cc6
mov r8, rsi
xor edx, edx
mov rcx, qword [0x18004e268]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
lea rax, [rbx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x180012d9e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180012d9e
lea r8, [0x180037c68]
mov edx, 0x66
lea rdi, [0x180000000]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
mov rcx, qword [rsp + 0x138]
test rax, rax
je 0x180013435
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x138]
test rax, rax
je 0x18001343a
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x78], rax
mov byte [rsp + 0x80], 1
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
mov rcx, qword [rsp + 0x138]
test eax, eax
je 0x180013440
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_LockResource]
mov edx, ebx
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_SHCreateMemStream]
mov rdi, rax
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x180012d9e
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rcx, qword [rsp + 0x138]
test rdi, rdi
je 0x180013446
mov rsi, r13
mov qword [rsp + 0x100], r13
mov eax, dword [0x18004e270]
cmp eax, r14d
jae 0x180012dd5
mov rax, qword [0x18004de90]
mov rbx, qword [rax + 0x138]
jmp 0x180012e01
cmp eax, 0x585d
jb 0x180012df3
cmp eax, 0x65f4
jae 0x180012df3
mov rax, qword [0x18004de90]
mov rbx, qword [rax + 0xf8]
jmp 0x180012e01
mov rax, qword [0x18004de90]
mov rbx, qword [rax + 0xf0]
mov rcx, r13
test rbx, rbx
je 0x180012e21
mov rsi, rbx
mov qword [rsp + 0x100], rbx
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, rbx
mov qword [rsp + 0xf8], r13
mov rax, qword [rcx]
lea rdx, [rsp + 0xf8]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
lea r8, [0x180035b18]
mov rdx, rdi
call qword [rax + 0x20]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x18001344c
mov qword [rsp + 0xf0], r13
mov rcx, qword [rsp + 0xf8]
mov rax, qword [rcx]
lea r8, [rsp + 0xf0]
xor edx, edx
call qword [rax + 0x68]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x180013454
mov qword [rsp + 0xe0], r13
mov rax, qword [rsi]
lea rdx, [rsp + 0xe0]
mov rcx, rsi
call qword [rax + 0x50]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x18001345c
mov qword [rsp + 0x78], r13
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rcx]
mov dword [rsp + 0x30], r13d
xorps xmm0, xmm0
movsd qword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r13
xor r9d, r9d
lea r8, [0x180035b28]
mov rdx, qword [rsp + 0xf0]
call qword [rax + 0x40]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x180013464
mov qword [rsp + 0xd8], r13
mov rax, qword [rsi]
lea r9, [rsp + 0xd8]
xor r8d, r8d
mov rdx, qword [rsp + 0xe0]
mov rcx, rsi
call qword [rax + 0x90]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x18001346c
mov dword [rsp + 0xc8], r13d
mov dword [rsp + 0xcc], r13d
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rcx]
lea r8, [rsp + 0xcc]
lea rdx, [rsp + 0xc8]
call qword [rax + 0x18]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x180013473
cmp qword [0x18004e2f8], r13
jne 0x18001318e
mov rcx, qword [0x18004e300]
test rcx, rcx
jne 0x180012f98
mov rdi, r13
mov qword [rsp + 0xc0], r13
mov rcx, r13
jmp 0x180012fcf
mov qword [rsp + 0xb0], r13
mov rax, qword [rcx]
lea r8, [rsp + 0xb0]
lea rdx, [0x180037380]
call qword [rax]
test eax, eax
js 0x18001347a
mov rdi, qword [rsp + 0xb0]
mov qword [rsp + 0xc0], rdi
mov rcx, rdi
mov rax, r13
mov qword [rsp + 0xa8], rax
test rcx, rcx
jne 0x180012fe7
mov rbx, r13
mov r14, r13
jmp 0x18001301e
mov qword [rsp + 0xb8], r13
mov rax, qword [rcx]
lea r8, [rsp + 0xb8]
lea rdx, [0x180036400]
call qword [rax]
test eax, eax
js 0x180013482
mov rbx, qword [rsp + 0xb8]
mov r14, rbx
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x40], rbx
mov rcx, qword [r14]
mov r15, qword [rcx + 0x28]
test rax, rax
je 0x18001303c
lea rcx, [rsp + 0xa8]
call fcn.180007a18
mov eax, dword [0x18004e270]
cmp eax, 0x55f0
jae 0x180013059
mov rax, qword [0x18004de90]
mov rdx, qword [rax + 0xe8]
jmp 0x18001308d
cmp eax, 0x585d
jae 0x18001306d
mov rax, qword [0x18004de90]
mov rcx, qword [rax + 0x30]
jmp 0x18001307f
cmp eax, 0x65f4
mov rax, qword [0x18004de90]
jae 0x180013085
mov rcx, qword [rax + 0x38]
mov rdx, qword [rcx + 0x18]
jmp 0x18001308d
mov rdx, qword [rax + 0x38]
mov rdx, qword [rdx + 0x20]
lea r8, [rsp + 0xa8]
mov rcx, r14
call r15
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x18001348a
test rbx, rbx
je 0x1800130ba
lea rcx, [rsp + 0x40]
call fcn.1800078b8
mov dword [rsp + 0xb8], 1
mov dword [rsp + 0xb0], 0x57
mov eax, dword [rsp + 0xcc]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
mov eax, dword [rsp + 0xc8]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x44], xmm1
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xb0]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xa8]
call fcn.180006ba4
mov rbx, rax
lea rcx, [0x18004e2f8]
cmp rcx, rax
je 0x180013150
cmp qword [0x18004e2f8], r13
je 0x180013143
call fcn.180007a18
mov rax, qword [rbx]
mov qword [rbx], r13
mov qword [0x18004e2f8], rax
cmp qword [rsp + 0x50], r13
je 0x180013162
lea rcx, [rsp + 0x50]
call fcn.180007a18
nop
cmp qword [rsp + 0xa8], r13
je 0x18001317a
lea rcx, [rsp + 0xa8]
call fcn.180007a18
nop
test rdi, rdi
je 0x1800131be
lea rcx, [rsp + 0xc0]
call fcn.180007a18
jmp 0x1800131be
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0xcc]
mov dword [rsp + 0xc4], eax
lea rdx, [rsp + 0xc0]
lea rcx, [0x18004e2f8]
call fcn.180006c1c
mov eax, dword [rsp + 0xc8]
mov dword [0x18004e010], eax
mov eax, dword [rsp + 0xcc]
mov dword [0x18004e014], eax
mov rcx, qword [0x18004e2f8]
test rcx, rcx
jne 0x1800131ec
mov rbx, r13
mov rcx, r13
jmp 0x18001321b
mov qword [rsp + 0xc0], r13
mov rax, qword [rcx]
lea r8, [rsp + 0xc0]
lea rdx, [0x1800363f0]
call qword [rax]
test eax, eax
js 0x180013492
mov rbx, qword [rsp + 0xc0]
mov rcx, rbx
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0x108], r13
mov qword [rsp + 0xd0], r13
mov rax, qword [rcx]
lea rdx, [rsp + 0x108]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0xd0]
lea r8, [0x180036b78]
xor edx, edx
call qword [rax + 0x18]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x18001349a
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x178]
mov qword [rsp + 0xe8], r13
mov dword [rsp + 0x58], 0x57
mov dword [rsp + 0x5c], 1
mov dword [rsp + 0x60], 0x42c00000
mov qword [rsp + 0x64], 0x42c00000
mov qword [rsp + 0x70], r13
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [rsp + 0x88], xmm0
movups xmm1, xmmword [rsp + 0x68]
movups xmmword [rsp + 0x98], xmm1
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rcx]
lea r9, [rsp + 0xe8]
lea r8, [rsp + 0x88]
mov rdx, qword [rsp + 0xd8]
call qword [rax + 0x1d0]
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], 1
movss xmm3, dword [0x18003a06c]
xor r8d, r8d
mov rdx, qword [rsp + 0xe8]
call qword [rax + 0xd0]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x20]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x1800134a2
cmp qword [rsp + 0xe8], r13
je 0x18001334d
lea rcx, [rsp + 0xe8]
call fcn.1800078b8
nop
cmp qword [rsp + 0xd0], r13
je 0x180013365
lea rcx, [rsp + 0xd0]
call fcn.1800078b8
nop
test rbx, rbx
je 0x180013378
lea rcx, [rsp + 0xc0]
call fcn.1800078b8
nop
cmp qword [rsp + 0xd8], r13
je 0x180013390
lea rcx, [rsp + 0xd8]
call fcn.1800078b8
nop
cmp qword [rsp + 0xe0], r13
je 0x1800133a8
lea rcx, [rsp + 0xe0]
call fcn.1800078b8
nop
cmp qword [rsp + 0xf0], r13
je 0x1800133c0
lea rcx, [rsp + 0xf0]
call fcn.1800078b8
nop
cmp qword [rsp + 0xf8], r13
je 0x1800133d8
lea rcx, [rsp + 0xf8]
call fcn.1800078b8
nop
test rsi, rsi
je 0x1800133eb
lea rcx, [rsp + 0x100]
call fcn.1800078b8
nop
lea rcx, [rsp + 0x48]
call fcn.1800078b8
nop
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.18002dc90
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
ret
call fcn.18000a874
call fcn.18000a874
nop
call fcn.18000a874
nop
call fcn.18000a874
call fcn.18000a874
nop
call fcn.18000a874
nop
call fcn.18000a874
nop
mov edx, eax
call fcn.18000acc8
nop
mov edx, eax
call fcn.18000acc8
nop
mov edx, eax
call fcn.18000acc8
nop
mov edx, eax
call fcn.18000acc8
nop
mov edx, eax
call fcn.18000acc8
mov edx, eax
call fcn.18000acc8
mov ecx, eax
call fcn.18000c54c
nop
mov ecx, eax
call fcn.18000c54c
nop
mov edx, eax
call fcn.18000acc8
nop
mov ecx, eax
call fcn.18000c54c
nop
mov edx, eax
call fcn.18000acc8
nop
mov edx, eax
call fcn.18000acc8
int3