Function at 0x180017ed8
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
push rdi
push r12
push r15
sub rsp, 0x120
mov rax, qword [0x18004d040]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rdi, rcx
xor r12d, r12d
mov qword [rsp + 0x50], r12
lea rdx, [0x18004d1e0]
cmp qword [reloc.OLEAUT32.dll_VariantInit], 7
cmova rdx, qword [0x18004d1e0]
movups xmm1, xmmword [rcx]
mov rcx, qword [rcx + 8]
cmp rcx, qword [0x18004d1f0]
jne 0x180017f61
test rcx, rcx
je 0x180017f53
movq r8, xmm1
sub r8, rdx
movzx eax, word [rdx + r8]
cmp ax, word [rdx]
jne 0x180017f61
add rdx, 2
sub rcx, 1
jne 0x180017f3f
cmp qword [0x180053850], r12
je 0x180017f74
jmp 0x1800187da
mov r8, qword [rdi + 8]
mov rdx, qword [rdi]
lea rcx, [0x18004d1e0]
call fcn.180009b34
mov eax, dword [0x1800537b0]
cmp eax, 0x55f0
jae 0x180017f91
mov rax, qword [0x1800533b0]
mov rbx, qword [rax + 0xd8]
jmp 0x180017fad
cmp eax, 0x585d
mov rax, qword [0x1800533b0]
jae 0x180017fa5
mov rcx, qword [rax + 0x28]
jmp 0x180017fa9
mov rcx, qword [rax + 0x30]
mov rbx, qword [rcx + 0x20]
mov rax, qword [0x180053858]
cmp rax, rbx
je 0x180017fe0
test rax, rax
je 0x180017fca
lea rcx, [0x180053858]
call fcn.18000778c
mov qword [0x180053858], rbx
test rbx, rbx
je 0x180017fe0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
cmp qword [rdi + 8], r12
je 0x18001811a
mov rcx, qword [rdi]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x18001811a
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
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 0x180018803
mov qword [rsp + 0xb0], r12
lea rdx, [rsp + 0xb0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov rcx, qword [rsp + 0x138]
test eax, eax
je 0x180018808
mov rsi, qword [rsp + 0xb0]
mov rcx, rsi
call fcn.18001f5cc
mov rdi, rax
test rax, rax
je 0x180018097
mov r8, rsi
xor edx, edx
mov rcx, rax
call sub.ucrtbase.dll_memset
jmp 0x18001809a
mov rdi, r12
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0x20], r12
xor r9d, r9d
mov r8d, dword [rsp + 0xb0]
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, qword [rsp + 0x138]
test eax, eax
je 0x18001880e
mov edx, dword [rsp + 0xb0]
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_SHCreateMemStream]
mov rsi, rax
mov qword [rsp + 0x50], rax
test rdi, rdi
je 0x1800180fe
mov r8, rdi
xor edx, edx
mov rcx, qword [0x1800537a8]
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
lea rax, [rbx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1800181d9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1800181d9
lea r8, [0x18003b6e8]
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 0x180018814
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0x138]
test rax, rax
je 0x180018819
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x88], 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 0x18001881f
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_LockResource]
mov edx, ebx
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_SHCreateMemStream]
mov rsi, rax
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x1800181d9
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov rcx, qword [rsp + 0x138]
test rsi, rsi
je 0x180018825
mov rdi, r12
mov qword [rsp + 0x100], r12
mov eax, dword [0x1800537b0]
cmp eax, 0x55f0
jae 0x180018212
mov rax, qword [0x1800533b0]
mov rbx, qword [rax + 0x138]
jmp 0x180018230
cmp eax, 0x585d
mov rax, qword [0x1800533b0]
jae 0x180018229
mov rbx, qword [rax + 0xf0]
jmp 0x180018230
mov rbx, qword [rax + 0xf8]
mov rcx, r12
test rbx, rbx
je 0x180018250
mov rdi, 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], r12
mov rax, qword [rcx]
lea rdx, [rsp + 0xf8]
mov qword [rsp + 0x20], rdx
xor r9d, r9d
lea r8, [0x180039b58]
mov rdx, rsi
call qword [rax + 0x20]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x18001882b
mov qword [rsp + 0xf0], r12
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 0x180018833
mov qword [rsp + 0xe0], r12
mov rax, qword [rdi]
lea rdx, [rsp + 0xe0]
mov rcx, rdi
call qword [rax + 0x50]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x18001883b
mov qword [rsp + 0x80], r12
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rcx]
mov dword [rsp + 0x30], r12d
xorps xmm0, xmm0
movsd qword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r12
xor r9d, r9d
lea r8, [0x180039b68]
mov rdx, qword [rsp + 0xf0]
call qword [rax + 0x40]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x180018843
mov qword [rsp + 0xd8], r12
mov rax, qword [rdi]
lea r9, [rsp + 0xd8]
xor r8d, r8d
mov rdx, qword [rsp + 0xe0]
mov rcx, rdi
call qword [rax + 0x90]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x18001884b
mov dword [rsp + 0xc8], r12d
mov dword [rsp + 0xcc], r12d
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 0x180018852
cmp qword [0x180053850], r12
jne 0x180018572
lea rdx, [rsp + 0x48]
lea rcx, [0x180053858]
call fcn.180006a04
nop
mov rax, r12
mov qword [rsp + 0xb0], rax
mov rcx, qword [rsp + 0x48]
test rcx, rcx
jne 0x1800183dd
mov rbx, r12
mov rsi, r12
jmp 0x180018414
mov qword [rsp + 0xb8], r12
mov rax, qword [rcx]
lea r8, [rsp + 0xb8]
lea rdx, [0x18003a440]
call qword [rax]
test eax, eax
js 0x18001885a
mov rbx, qword [rsp + 0xb8]
mov rsi, rbx
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x40], rbx
mov rcx, qword [rsi]
mov r15, qword [rcx + 0x28]
test rax, rax
je 0x180018432
lea rcx, [rsp + 0xb0]
call fcn.1800078ec
mov eax, dword [0x1800537b0]
cmp eax, 0x55f0
jae 0x18001844f
mov rax, qword [0x1800533b0]
mov rdx, qword [rax + 0xe8]
jmp 0x18001846f
cmp eax, 0x585d
mov rax, qword [0x1800533b0]
jae 0x180018467
mov rcx, qword [rax + 0x30]
mov rdx, qword [rcx + 0x18]
jmp 0x18001846f
mov rdx, qword [rax + 0x38]
mov rdx, qword [rdx + 0x18]
lea r8, [rsp + 0xb0]
mov rcx, rsi
call r15
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x180018862
test rbx, rbx
je 0x18001849c
lea rcx, [rsp + 0x40]
call fcn.18000778c
mov dword [rsp + 0x40], 1
mov dword [rsp + 0xb8], 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 + 0x58], xmm0
movss dword [rsp + 0x5c], xmm1
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xb8]
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0xb0]
call fcn.180006a70
mov rbx, rax
lea rcx, [0x180053850]
cmp rcx, rax
je 0x18001852f
cmp qword [0x180053850], r12
je 0x180018522
call fcn.1800078ec
mov rax, qword [rbx]
mov qword [rbx], r12
mov qword [0x180053850], rax
cmp qword [rsp + 0xc0], r12
je 0x180018547
lea rcx, [rsp + 0xc0]
call fcn.1800078ec
nop
cmp qword [rsp + 0xb0], r12
je 0x18001855f
lea rcx, [rsp + 0xb0]
call fcn.1800078ec
nop
cmp qword [rsp + 0x48], r12
je 0x1800185a2
lea rcx, [rsp + 0x48]
call fcn.1800078ec
jmp 0x1800185a2
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, [0x180053850]
call fcn.180006af8
mov eax, dword [rsp + 0xc8]
mov dword [0x1800535a0], eax
mov eax, dword [rsp + 0xcc]
mov dword [0x1800535a4], eax
mov rcx, qword [0x180053850]
test rcx, rcx
jne 0x1800185d0
mov rbx, r12
mov rcx, r12
jmp 0x1800185ff
mov qword [rsp + 0xc0], r12
mov rax, qword [rcx]
lea r8, [rsp + 0xc0]
lea rdx, [0x18003a430]
call qword [rax]
test eax, eax
js 0x18001886a
mov rbx, qword [rsp + 0xc0]
mov rcx, rbx
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0x108], r12
mov qword [rsp + 0xd0], r12
mov rax, qword [rcx]
lea rdx, [rsp + 0x108]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0xd0]
lea r8, [0x18003abb8]
xor edx, edx
call qword [rax + 0x18]
mov rcx, qword [rsp + 0x138]
test eax, eax
js 0x180018872
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x178]
mov qword [rsp + 0xe8], r12
mov dword [rsp + 0x60], 0x57
mov dword [rsp + 0x64], 1
mov dword [rsp + 0x68], 0x42c00000
mov qword [rsp + 0x6c], 0x42c00000
mov qword [rsp + 0x78], r12
movups xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x90], xmm0
movups xmm1, xmmword [rsp + 0x70]
movups xmmword [rsp + 0xa0], xmm1
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rcx]
lea r9, [rsp + 0xe8]
lea r8, [rsp + 0x90]
mov rdx, qword [rsp + 0xd8]
call qword [rax + 0x1d0]
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], 1
movss xmm3, dword [0x18003e1dc]
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 0x18001887a
cmp qword [rsp + 0xe8], r12
je 0x180018731
lea rcx, [rsp + 0xe8]
call fcn.18000778c
nop
cmp qword [rsp + 0xd0], r12
je 0x180018749
lea rcx, [rsp + 0xd0]
call fcn.18000778c
nop
test rbx, rbx
je 0x18001875c
lea rcx, [rsp + 0xc0]
call fcn.18000778c
nop
cmp qword [rsp + 0xd8], r12
je 0x180018774
lea rcx, [rsp + 0xd8]
call fcn.18000778c
nop
cmp qword [rsp + 0xe0], r12
je 0x18001878c
lea rcx, [rsp + 0xe0]
call fcn.18000778c
nop
cmp qword [rsp + 0xf0], r12
je 0x1800187a4
lea rcx, [rsp + 0xf0]
call fcn.18000778c
nop
cmp qword [rsp + 0xf8], r12
je 0x1800187bc
lea rcx, [rsp + 0xf8]
call fcn.18000778c
nop
test rdi, rdi
je 0x1800187cf
lea rcx, [rsp + 0x100]
call fcn.18000778c
nop
lea rcx, [rsp + 0x50]
call fcn.18000778c
nop
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.180031670
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r12
pop rdi
ret
call fcn.18000a760
call fcn.18000a760
nop
call fcn.18000a760
nop
call fcn.18000a760
call fcn.18000a760
nop
call fcn.18000a760
nop
call fcn.18000a760
nop
mov edx, eax
call fcn.18000abb4
nop
mov edx, eax
call fcn.18000abb4
nop
mov edx, eax
call fcn.18000abb4
nop
mov edx, eax
call fcn.18000abb4
nop
mov edx, eax
call fcn.18000abb4
mov edx, eax
call fcn.18000abb4
nop
mov ecx, eax
call fcn.18000c42c
nop
mov edx, eax
call fcn.18000abb4
nop
mov ecx, eax
call fcn.18000c42c
nop
mov edx, eax
call fcn.18000abb4
nop
mov edx, eax
call fcn.18000abb4
int3