Function at 0x1800027d0
Capabilities:
Create pipe
Create process on windows
Create two anonymous pipes
Print debug messages
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0x920]
sub rsp, 0xa20
mov rax, qword [0x180034018]
xor rax, rsp
mov qword [rbp + 0x910], rax
xorps xmm0, xmm0
lea r8, [rsp + 0x50]
xor eax, eax
lea rdx, [rsp + 0x70]
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x78]
xor r14d, r14d
mov dword [rsp + 0x50], 0x18
xor r9d, r9d
mov dword [rsp + 0x60], 1
mov edi, r14d
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x180002850
lea rcx, str.create_pipe_1
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
jmp 0x1800028f5
xorps xmm0, xmm0
lea r8, [rsp + 0x50]
xor eax, eax
lea rdx, [rbp - 0x80]
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rax
lea rcx, [rbp - 0x78]
xor r9d, r9d
mov dword [rsp + 0x50], 0x18
mov dword [rsp + 0x60], 1
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x18000289a
lea rcx, str.create_pipe_2
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
jmp 0x1800028f5
mov rcx, qword [rsp + 0x78]
xor r8d, r8d
mov qword [rsp + 0xa30], rbx
mov qword [rsp + 0xa38], rsi
lea edx, [r8 + 1]
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
jne 0x180002919
lea rcx, str.SetHandleInformation_1
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov rbx, qword [rsp + 0xa30]
mov rsi, qword [rsp + 0xa38]
mov rcx, qword [rbp + 0x910]
xor rcx, rsp
call fcn.18000db30
lea r11, [rsp + 0xa20]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
mov rcx, qword [rbp - 0x78]
xor r8d, r8d
lea edx, [r8 + 1]
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
jne 0x180002937
lea rcx, str.SetHandleInformation_2
jmp 0x1800028c7
xor edx, edx
lea rcx, [rbp]
mov r8d, 0x104
call fcn.18000ee40
mov r8d, 0x104
lea rdx, [rbp]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, 0x5c
lea rcx, [rbp]
call fcn.18000e6d0
test rax, rax
je 0x180002971
mov byte [rax + 1], dil
lea r9, str.get_graphics_offsets64.exe
lea r8, [rbp]
lea rdx, str._s_s
lea rcx, [rbp]
call fcn.180003690
xorps xmm1, xmm1
lea rdx, [rbp]
xor eax, eax
xorps xmm0, xmm0
mov qword [rsp + 0x60], rax
xor r9d, r9d
mov rax, qword [rsp + 0x70]
xor r8d, r8d
movups xmmword [rbp - 0x20], xmm1
mov qword [rbp - 0x18], rax
xor ecx, ecx
mov rax, qword [rbp - 0x80]
mov qword [rbp - 0x10], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
movups xmmword [rbp - 0x70], xmm1
mov dword [rsp + 0x28], 0x8000000
movups xmmword [rbp - 0x40], xmm1
mov dword [rsp + 0x20], 1
movups xmmword [rsp + 0x50], xmm0
mov dword [rbp - 0x70], 0x68
movups xmmword [rbp - 0x60], xmm1
mov dword [rbp - 0x34], 0x180
movups xmmword [rbp - 0x50], xmm1
mov qword [rbp - 0x20], r14
movups xmmword [rbp - 0x30], xmm1
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
setne bl
test eax, eax
je 0x180002a33
mov rcx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180002a37
mov rsi, qword [rbp - 0x80]
test bl, bl
je 0x1800028cd
mov ecx, 0x20
call fcn.18000fa98
mov rcx, qword [rsp + 0x78]
mov rbx, rax
mov qword [rax + 8], rcx
mov rcx, qword [rbp - 0x78]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x70]
mov byte [rax], 1
mov qword [rax + 0x18], rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rbx + 8]
nop dword [rax]
lea r9, [rsp + 0x68]
mov qword [rsp + 0x20], r14
mov r8d, 0x800
lea rdx, [rbp + 0x110]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180002ab1
mov eax, dword [rsp + 0x68]
test eax, eax
je 0x180002ab1
add rdi, rax
jmp 0x180002a80
test rdi, rdi
jne 0x180002ac2
lea rcx, str.load_graphics_offsets:_Failed_to_read_from__s
jmp 0x1800028c7
cmp rdi, 0x800
jae 0x1800031b3
lea rdx, [0x180022968]
mov byte [rbp + rdi + 0x110], r14b
lea rcx, [rbp + 0x110]
call fcn.18000fa68
mov rbx, rax
mov edi, r14d
test rax, rax
je 0x1800031a1
nop dword [rax]
lea rdx, str.d3d8
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180002b2b
lea rcx, str.d3d8_offset
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 8
jmp 0x180003187
lea rdx, str.d3d9
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180002b56
lea rcx, str.d3d9_offset
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 9
jmp 0x180003187
lea rdx, str.dxgi
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180002b81
lea rcx, str.dxgi_offset
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 0xa
jmp 0x180003187
cmp edi, 8
jne 0x180002c25
lea rdx, str.present
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180003187
lea rcx, str.d3d8_present
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180002c13
movzx eax, byte [rbx]
test al, al
je 0x180002c13
cmp al, 0x30
jne 0x180002bf3
cmp byte [rbx + 1], 0x78
jne 0x180002bf3
lea rcx, [rbx + 2]
xor edx, edx
lea r8d, [rdi + 8]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x44], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x44], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x44], ecx
jmp 0x180003187
cmp edi, 9
jne 0x180002f35
lea rdx, str.present
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180002cc9
lea rcx, str.d3d9_present
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180002cb7
movzx eax, byte [rbx]
test al, al
je 0x180002cb7
cmp al, 0x30
jne 0x180002c97
cmp byte [rbx + 1], 0x78
jne 0x180002c97
lea rcx, [rbx + 2]
xor edx, edx
lea r8d, [rdi + 7]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x48], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x48], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x48], ecx
jmp 0x180003187
lea rdx, str.present_ex
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180002d64
lea rcx, str.d3d9_present_ex
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 0xb
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180002d52
movzx eax, byte [rbx]
test al, al
je 0x180002d52
cmp al, 0x30
jne 0x180002d32
cmp byte [rbx + 1], 0x78
jne 0x180002d32
xor edx, edx
lea rcx, [rbx + 2]
lea r8d, [rdx + 0x10]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x4c], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x4c], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x4c], ecx
jmp 0x180003187
lea rdx, str.present_swap
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180002dff
lea rcx, str.d3d9_present_swap
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 0xd
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180002ded
movzx eax, byte [rbx]
test al, al
je 0x180002ded
cmp al, 0x30
jne 0x180002dcd
cmp byte [rbx + 1], 0x78
jne 0x180002dcd
xor edx, edx
lea rcx, [rbx + 2]
lea r8d, [rdx + 0x10]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x50], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x50], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x50], ecx
jmp 0x180003187
lea rdx, str.d3xd9_clsoff
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180002e9a
lea rcx, str.d3d9_d3d9_clsoff
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 0xd
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180002e88
movzx eax, byte [rbx]
test al, al
je 0x180002e88
cmp al, 0x30
jne 0x180002e68
cmp byte [rbx + 1], 0x78
jne 0x180002e68
xor edx, edx
lea rcx, [rbx + 2]
lea r8d, [rdx + 0x10]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x54], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x54], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x54], ecx
jmp 0x180003187
lea rdx, str.is_d3dx9ex_clsexoff
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180003187
lea rcx, str.d3d9_is_d3d9ex_clsoff
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 0x14
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180002f23
movzx eax, byte [rbx]
test al, al
je 0x180002f23
cmp al, 0x30
jne 0x180002f03
cmp byte [rbx + 1], 0x78
jne 0x180002f03
xor edx, edx
lea rcx, [rbx + 2]
lea r8d, [rdx + 0x10]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x58], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x58], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x58], ecx
jmp 0x180003187
cmp edi, 0xa
jne 0x180003187
lea rdx, str.present
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180002fd9
lea rcx, str.dxgi_present
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180002fc7
movzx eax, byte [rbx]
test al, al
je 0x180002fc7
cmp al, 0x30
jne 0x180002fa7
cmp byte [rbx + 1], 0x78
jne 0x180002fa7
lea rcx, [rbx + 2]
xor edx, edx
lea r8d, [rdi + 6]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x5c], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x5c], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x5c], ecx
jmp 0x180003187
lea rdx, str.present1
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180003074
lea rcx, str.dxgi_present1
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180003062
movzx eax, byte [rbx]
test al, al
je 0x180003062
cmp al, 0x30
jne 0x180003042
cmp byte [rbx + 1], 0x78
jne 0x180003042
xor edx, edx
lea rcx, [rbx + 2]
lea r8d, [rdx + 0x10]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x64], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x64], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x64], ecx
jmp 0x180003187
lea rdx, str.resize
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x18000310c
lea rcx, str.dxgi_resize
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 7
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x1800030fd
movzx eax, byte [rbx]
test al, al
je 0x1800030fd
cmp al, 0x30
jne 0x1800030dd
cmp byte [rbx + 1], 0x78
jne 0x1800030dd
xor edx, edx
lea rcx, [rbx + 2]
lea r8d, [rdx + 0x10]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x60], ecx
jmp 0x180003187
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
mov rax, qword [0x180034a30]
mov dword [rax + 0x60], ecx
jmp 0x180003187
mov rax, qword [0x180034a30]
mov rcx, r14
mov dword [rax + 0x60], ecx
jmp 0x180003187
lea rdx, str.release
mov rcx, rbx
call fcn.18000e800
test rax, rax
je 0x180003187
lea rcx, str.dxgi_release
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add rbx, 8
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rbx, rbx
je 0x180003177
movzx eax, byte [rbx]
test al, al
je 0x180003177
cmp al, 0x30
jne 0x180003164
cmp byte [rbx + 1], 0x78
jne 0x180003164
xor edx, edx
lea rcx, [rbx + 2]
lea r8d, [rdx + 0x10]
call fcn.1800108ac
mov rcx, rax
jmp 0x18000317a
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 0xa]
call fcn.1800108ac
mov rcx, rax
jmp 0x18000317a
mov rcx, r14
mov rax, qword [0x180034a30]
mov dword [rax + 0x88], ecx
lea rdx, [0x180022968]
xor ecx, ecx
call fcn.18000fa68
mov rbx, rax
test rax, rax
jne 0x180002b00
mov rax, qword [0x180034a30]
mov byte [rax + 0x41], 1
mov al, 1
jmp 0x1800028e5
call fcn.18000d910
int3