Function at 0x140013fc8
Capabilities:
Extract resource via kernel32 functions
Get system information on windows

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rbx, rdx
mov r14, rcx
xor edx, edx
mov r8d, 0x148
call sub.msvcrt.dll_memset
lea rcx, [r14 + 0x108]
call fcn.140013248
and dword [rsp + 0x68], 0
xor r15d, r15d
mov qword [rsp + 0x78], r15
test rbx, rbx
jne 0x14001401b
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
nop dword [rax + rax]
mov rbx, rax
mov qword [r14 + 0x140], rbx
lea rcx, [r14 + 0x118]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
nop dword [rax + rax]
jmp 0x140014041
lea r9, [rsp + 0x68]
xor r8d, r8d
xor edx, edx
mov r12d, 0x8c
mov ecx, r12d
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
nop dword [rax + rax]
mov edi, eax
bts edi, 0x1c
cmp edi, 0xd0000023
jne 0x1400140c7
mov ebx, dword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
mov r8d, ebx
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
nop dword [rax + rax]
mov r15, rax
test rax, rax
jne 0x1400140a7
mov edi, 0x8007000e
jmp 0x1400141bd
xor r9d, r9d
mov r8d, dword [rsp + 0x68]
mov rdx, rax
mov ecx, r12d
call qword [sym.imp.ntdll.dll_NtQuerySystemInformation]
nop dword [rax + rax]
mov edi, eax
bts edi, 0x1c
test edi, edi
js 0x1400141bd
test r15, r15
je 0x1400141bd
xor r8d, r8d
lea rdx, str.SYSTEMCurrentControlSetControlMiniNT
mov rcx, 0xffffffff80000002
call fcn.140008600
test eax, eax
jne 0x1400140fc
test byte [r15], 1
je 0x1400141bd
mov ecx, dword [rsp + 0x68]
sub ecx, dword [r15 + 4]
cmp ecx, 0xe
jbe 0x1400141bd
mov eax, dword [r15 + 4]
lea r12, [r15 + 0xe]
add r12, rax
lea eax, [rcx - 0xe]
cmp eax, dword [r12]
jbe 0x1400141bd
cmp dword [r12 + 4], 0
je 0x1400141bd
cmp dword [r12 + 8], 0
je 0x1400141bd
mov ebx, dword [r12]
add rbx, r12
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
nop dword [rax + rax]
mov rcx, rax
and dword [rsp + 0x28], 0
mov qword [rsp + 0x20], r12
mov r9, rbx
mov r8d, 4
mov rdx, r12
call qword [sym.imp.GDI32.dll_CreateDIBitmap]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
je 0x140014361
and dword [r14], 0
mov eax, dword [r12 + 4]
mov dword [r14 + 8], eax
and dword [r14 + 4], 0
mov eax, dword [r12 + 8]
mov dword [r14 + 8], eax
mov rcx, qword [r14 + 0x108]
test rcx, rcx
je 0x1400141b6
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
mov qword [r14 + 0x108], rbx
cmp qword [r14 + 0x108], 0
jne 0x14001420d
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.140015050
mov rbx, qword [rax]
and qword [rax], 0
mov rcx, qword [r14 + 0x108]
test rcx, rcx
je 0x1400141f3
call qword [sym.imp.GDI32.dll_DeleteObject]
nop dword [rax + rax]
xor eax, eax
test rbx, rbx
cmovne rax, rbx
mov qword [r14 + 0x108], rax
lea rcx, [rsp + 0x60]
call fcn.140013f98
mov r8d, 0xa
lea rdx, str.IDR_SETUP_FONT
mov rcx, qword [r14 + 0x140]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
je 0x140014361
mov rdx, rax
mov rcx, qword [r14 + 0x140]
call qword [sym.imp.KERNEL32.dll_LoadResource]
nop dword [rax + rax]
mov r12, rax
test rax, rax
je 0x140014361
mov rdx, rbx
mov rcx, qword [r14 + 0x140]
call qword [sym.imp.KERNEL32.dll_SizeofResource]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
je 0x140014361
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LockResource]
nop dword [rax + rax]
test rax, rax
je 0x140014361
and dword [rsp + 0x70], 0
lea r9, [rsp + 0x70]
xor r8d, r8d
mov edx, ebx
mov rcx, rax
call qword [sym.imp.GDI32.dll_AddFontMemResourceEx]
nop dword [rax + rax]
mov qword [r14 + 0x110], rax
test rax, rax
je 0x140014361
mov r8d, 0xa
lea rdx, str.IDR_SETUP10_FONT
mov rcx, qword [r14 + 0x140]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
nop dword [rax + rax]
mov rbx, rax
test rax, rax
je 0x140014361
mov rdx, rax
mov rcx, qword [r14 + 0x140]
call qword [sym.imp.KERNEL32.dll_LoadResource]
nop dword [rax + rax]
mov r12, rax
test rax, rax
je 0x140014361
mov rdx, rbx
mov rcx, qword [r14 + 0x140]
call qword [sym.imp.KERNEL32.dll_SizeofResource]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
je 0x140014361
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LockResource]
nop dword [rax + rax]
test rax, rax
je 0x140014361
and dword [rsp + 0x70], 0
lea r9, [rsp + 0x70]
xor r8d, r8d
mov edx, ebx
mov rcx, rax
call qword [sym.imp.GDI32.dll_AddFontMemResourceEx]
nop dword [rax + rax]
mov qword [r14 + 0x90], rax
test rax, rax
jne 0x14001438d
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
test eax, eax
jne 0x140014378
mov edi, 0x80004005
jmp 0x140014386
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov ecx, edi
call fcn.140012d04
mov rcx, r14
call fcn.1400143ec
movabs rax, 0x3ff0000000000000
mov qword [r14 + 0x98], rax
test r15, r15
je 0x1400143cb
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
mov r8, r15
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
mov ecx, edi
call fcn.140012d24
mov rax, r14
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret