Function at 0x1400010d0
Capabilities:
Extract resource via kernel32 functions
Get common file path
Link many functions at runtime
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x170
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x160], rax
xor ebp, ebp
lea rcx, [rsp + 0x50]
mov ebx, 0x104
mov dword [rsp + 0x40], ebp
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov ecx, ebx
lea rax, [rsp + 0x50]
cmp byte [rax], bpl
je 0x140001126
inc rax
sub rcx, 1
jne 0x140001118
mov rax, rbx
sub rax, rcx
test rcx, rcx
cmove rax, rbp
je 0x14000117a
sub rbx, rax
lea rax, [rsp + rax + 0x50]
je 0x14000116c
lea r8, str.d3dx9_43.dll
mov ecx, 0x7ffffffe
sub r8, rax
nop
test rcx, rcx
je 0x14000116c
movzx edx, byte [r8 + rax]
test dl, dl
je 0x14000116c
mov byte [rax], dl
dec rcx
inc rax
sub rbx, 1
jne 0x140001150
test rbx, rbx
lea rcx, [rax - 1]
cmovne rcx, rax
mov byte [rcx], bpl
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea r8, [0x14001b7b0]
mov edx, 0x79
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdx, rax
mov rcx, rsi
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rdx, rbx
mov rcx, rsi
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, rdi
mov esi, eax
call qword [sym.imp.KERNEL32.dll_LockResource]
xor r9d, r9d
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], 0x80
lea rcx, [rsp + 0x50]
mov edx, 0xc0000000
mov dword [rsp + 0x20], 2
mov rdi, rax
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x140001203
lea eax, [rbx + 0x53]
jmp 0x14000133a
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rbp
mov r8d, esi
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbx
test eax, eax
jne 0x140001233
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x59
jmp 0x14000133a
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
jne 0x140001253
mov eax, 0x60
jmp 0x14000133a
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.D3DXCreateTexture
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140021a80], rax
test rax, rax
jne 0x140001287
mov eax, 0x6d
jmp 0x14000133a
lea rdx, str.D3DXMatrixPerspectiveFovLH
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140021ae8], rax
test rax, rax
jne 0x1400012ad
mov eax, 0x76
jmp 0x14000133a
lea rdx, str.D3DXMatrixLookAtLH
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140021af8], rax
test rax, rax
jne 0x1400012d0
mov eax, 0x80
jmp 0x14000133a
lea rdx, str.D3DXMatrixRotationY
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140021a60], rax
test rax, rax
jne 0x1400012f3
mov eax, 0x88
jmp 0x14000133a
lea rdx, str.D3DXMatrixRotationX
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140021a68], rax
test rax, rax
jne 0x140001316
mov eax, 0x90
jmp 0x14000133a
lea rdx, str.D3DXMatrixMultiply
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
mov qword [0x140021a50], rax
mov ecx, 0x99
cmove ebp, ecx
mov eax, ebp
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.14001a080
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret