Function at 0x1400397e0
Capabilities:
Check if file exists
Get file attributes
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x1400e6080]
xor rax, rsp
mov qword [rbp + 8], rax
xor r14d, r14d
lea rdx, [0x1400ea330]
mov r9, qword [0x1400ea340]
cmp qword [0x1400ea348], 0xf
jbe 0x140039831
mov rdx, qword [0x1400ea330]
add r9, rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x78], xmm1
cmp rdx, r9
jne 0x140039860
movdqa xmm0, xmmword [0x1400d4cd0]
movdqu xmmword [rsp + 0x78], xmm0
mov word [rsp + 0x68], r14w
jmp 0x14003986e
sub r9, rdx
lea rcx, [rsp + 0x68]
call fcn.140027950
nop
lea rcx, [rbp - 0x58]
call fcn.140048c40
mov rbx, rax
mov rcx, qword [rax + 0x10]
mov rdx, qword [rax + 0x18]
mov rax, rdx
sub rax, rcx
cmp rax, 0x12
jb 0x1400398bf
lea rsi, [rcx + 0x12]
mov qword [rbx + 0x10], rsi
mov rdi, rbx
cmp rdx, 7
jbe 0x1400398a2
mov rdi, qword [rbx]
lea rcx, [rdi + rcx*2]
mov r8d, 0x24
lea rdx, str._trainer_settings_
call fcn.1400a7010
mov word [rdi + rsi*2], r14w
jmp 0x1400398e5
mov qword [rsp + 0x20], SafeArrayUnaccessData
lea r9, str._trainer_settings_
movzx r8d, byte [rsp + 0x30]
mov edx, 0x12
mov rcx, rbx
call fcn.140025580
mov rbx, rax
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x78], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x68], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], 7
mov word [rbx], r14w
lea r9, [rsp + 0x68]
lea r8, [rbp - 0x78]
lea rcx, [rsp + 0x48]
call fcn.140026990
nop
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov rax, rdx
sub rax, rcx
cmp rax, 4
jb 0x140039961
lea rax, [rcx + 4]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x48]
cmp rdx, 7
cmova rax, qword [rsp + 0x48]
movabs rdx, 0x69006e0069002e
mov qword [rax + rcx*2], rdx
mov word [rax + rcx*2 + 8], r14w
lea rax, [rsp + 0x48]
jmp 0x140039986
mov qword [rsp + 0x20], 4
lea r9, str..ini
movzx r8d, byte [rsp + 0x30]
mov edx, 4
lea rcx, [rsp + 0x48]
call fcn.140025580
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x28], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x38], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x28], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 7
mov word [rax], r14w
mov rdx, qword [rsp + 0x60]
cmp rdx, 7
jbe 0x1400399f6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400399f1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039e67
call fcn.14007f8a0
movdqa xmm0, xmmword [0x1400d4cd0]
movdqu xmmword [rsp + 0x58], xmm0
mov word [rsp + 0x48], r14w
mov rdx, qword [rbp - 0x60]
cmp rdx, 7
jbe 0x140039a4b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039a45
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039e6d
call fcn.14007f8a0
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 7
jbe 0x140039a8b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039a86
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039e73
call fcn.14007f8a0
movdqa xmm0, xmmword [0x1400d4cd0]
movdqu xmmword [rbp - 0x48], xmm0
mov word [rbp - 0x58], r14w
mov rdx, qword [rbp - 0x80]
cmp rdx, 7
jbe 0x140039ade
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039ad9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039e79
call fcn.14007f8a0
lea rcx, [rbp - 0x38]
cmp qword [rbp - 0x20], 7
cmova rcx, qword [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140039dfc
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
movdqa xmm1, xmmword [0x1400d4ce0]
movdqu xmmword [rbp - 0x48], xmm1
mov byte [rbp - 0x58], 0
movups xmmword [rsp + 0x48], xmm0
movdqa xmm1, xmmword [reloc.OLEAUT32.dll_SafeArrayDestroy]
movdqu xmmword [rsp + 0x58], xmm1
movsd xmm0, qword [str.GamePassExePath]
movsd qword [rsp + 0x48], xmm0
mov eax, dword [0x1400d1390]
mov dword [rsp + 0x50], eax
movzx eax, word [0x1400d1394]
mov word [rsp + 0x54], ax
movzx eax, byte [0x1400d1396]
mov byte [rsp + 0x56], al
mov byte [rsp + 0x57], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
movdqa xmm1, xmmword [reloc.OLEAUT32.dll_SysStringLen]
movdqu xmmword [rsp + 0x78], xmm1
mov eax, dword [str.Bypass]
mov dword [rsp + 0x68], eax
movzx eax, word [0x1400d139c]
mov word [rsp + 0x6c], ax
mov byte [rsp + 0x6e], 0
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x38]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x18]
call fcn.140039230
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0xf
jbe 0x140039be8
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039be3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039e7f
call fcn.14007f8a0
movdqa xmm0, xmmword [0x1400d4ce0]
movdqu xmmword [rsp + 0x78], xmm0
mov byte [rsp + 0x68], 0
mov rdx, qword [rsp + 0x60]
cmp rdx, 0xf
jbe 0x140039c38
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039c33
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039e85
call fcn.14007f8a0
movdqa xmm0, xmmword [0x1400d4ce0]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], 0
mov rdx, qword [rbp - 0x40]
cmp rdx, 0xf
jbe 0x140039c86
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039c81
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039e8b
call fcn.14007f8a0
movdqa xmm0, xmmword [0x1400d4ce0]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], 0
cmp qword [rbp - 8], 3
jbe 0x140039dab
mov rbx, qword [0x1400ea6e0]
lea rdi, [0x1400ea3a0]
mov qword [rsp + 0x40], rdi
mov rcx, rdi
call fcn.14007e438
test eax, eax
jne 0x140039e91
cmp dword [0x1400ea3ec], 0x7fffffff
je 0x140039e9c
mov dword [rsp + 0x38], 0xa
mov dword [rsp + 0x34], r14d
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x34]
lea r8d, [rax + 4]
lea rdx, [rsp + 0x38]
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
mov ecx, 0x20
call fcn.14007f8d4
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x68], SafeArrayUnaccessData
mov qword [rbp - 0x60], 0x1f
movups xmm0, xmmword [str.SET_GAMEPASS_EXE_PATH]
movups xmmword [rax], xmm0
mov ecx, dword [0x1400d17e0]
mov dword [rax + 0x10], ecx
movzx ecx, byte [0x1400d17e4]
mov byte [rax + 0x14], cl
mov byte [rax + 0x15], 0
lea rdx, [rbp - 0x78]
mov rcx, rbx
call fcn.140036070
mov dword [rsp + 0x34], r14d
mov dword [rsp + 0x38], r14d
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x38]
mov r8d, 4
lea rdx, [rsp + 0x34]
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0x34], 1
jne 0x140039da2
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x78]
call fcn.140021e70
mov rdx, rax
mov rcx, rbx
call fcn.140036170
nop
mov rcx, rdi
call fcn.14007e440
nop
mov rdx, qword [rbp]
cmp rdx, 7
jbe 0x140039deb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039de6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039eb1
call fcn.14007f8a0
mov qword [rbp - 8], r14
mov qword [rbp], 7
mov word [rbp - 0x18], r14w
mov rdx, qword [rbp - 0x20]
cmp rdx, 7
jbe 0x140039e38
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140039e33
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140039e61
call fcn.14007f8a0
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.14007f880
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
call fcn.140086990
nop
call fcn.140086990
nop
call fcn.140086990
nop
call fcn.140086990
nop
call fcn.140086990
nop
call fcn.140086990
nop
call fcn.140086990
nop
call fcn.140086990
int3
mov ecx, 5
call fcn.14007e3dc
int3
mov dword [0x1400ea3ec], 0x7ffffffe
mov ecx, 6
call fcn.14007e3dc
nop
call fcn.140086990
int3