Function at 0x14001147e
Capabilities:
Check if file exists
Delete file
Execute command
Get file attributes

Disassembly:
jmp 0x140020860
push rbp
push rdi
sub rsp, 0xac8
lea rbp, [rsp + 0x30]
lea rdi, [rsp + 0x30]
mov ecx, 0x1e6
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x14003f040]
xor rax, rbp
mov qword [rbp + 0xa80], rax
lea rcx, [0x1400460ee]
call fcn.140011cb7
mov edx, 0x38
lea rcx, [rbp + 8]
call fcn.1400111ea
lea rax, [rbp + 0x528]
mov qword [rbp + 0x568], rax
lea rdx, str.fps_config.ini
mov rcx, qword [rbp + 0x568]
call fcn.1400115c8
mov qword [rbp + 0xa38], rax
mov rdx, qword [rbp + 0xa38]
lea rcx, [rbp + 8]
call fcn.140011b59
nop
lea rcx, [rbp + 8]
call fcn.140011af5
test eax, eax
je 0x140020b6c
lea rcx, str.Config_not_found___Starting_first_time_setup_nPlease_leave_this_open_and_start_the_game_nThis_only_need_to_be_done_once_n_n
call fcn.140011618
lea rcx, str.Waiting_for_game..._n
call fcn.140011618
mov dword [rbp + 0x54], 0
lea rax, [rbp + 0x588]
mov qword [rbp + 0x5c8], rax
lea rdx, str.YuanShen.exe
mov rcx, qword [rbp + 0x5c8]
call fcn.1400115c8
mov qword [rbp + 0xa38], rax
mov rcx, qword [rbp + 0xa38]
call fcn.140011ce4
mov dword [rbp + 0x54], eax
cmp dword [rbp + 0x54], 0
jne 0x1400209b8
lea rax, [rbp + 0x5e8]
mov qword [rbp + 0x628], rax
lea rdx, str.GenshinImpact.exe
mov rcx, qword [rbp + 0x628]
call fcn.1400115c8
mov qword [rbp + 0xa38], rax
mov rcx, qword [rbp + 0xa38]
call fcn.140011ce4
mov dword [rbp + 0x54], eax
cmp dword [rbp + 0x54], 0
jne 0x1400209b8
mov dword [rbp + 0x664], 0xc8
lea rdx, [rbp + 0x664]
lea rcx, [rbp + 0x648]
call fcn.140011960
mov rcx, rax
call fcn.140011a9b
jmp 0x140020914
mov r8d, dword [rbp + 0x54]
xor edx, edx
mov ecx, 0x101000
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov qword [rbp + 0x78], rax
lea rax, [rbp + 0xa0]
mov rdi, rax
xor eax, eax
mov ecx, 0x104
rep stosb byte [rdi], al
mov dword [rbp + 0x1c4], 0x104
lea r9, [rbp + 0x1c4]
lea r8, [rbp + 0xa0]
xor edx, edx
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_QueryFullProcessImageNameA]
lea rdx, [rbp + 0xa0]
lea rcx, [0x14003f4c8]
call fcn.14001105f
movzx eax, byte [0x14003f4c1]
mov dword [rbp + 0xa34], eax
mov eax, dword [section..data]
mov dword [rbp + 0xa38], eax
lea rax, [rbp + 0x688]
mov qword [rbp + 0x6c8], rax
lea rdx, [0x14003f4c8]
mov rcx, qword [rbp + 0x6c8]
call fcn.1400111cc
mov qword [rbp + 0xa40], rax
mov rax, qword [rbp + 0xa40]
mov qword [rbp + 0xa48], rax
mov r8d, dword [rbp + 0xa34]
mov edx, dword [rbp + 0xa38]
mov rcx, qword [rbp + 0xa48]
call fcn.1400112df
mov qword [rbp + 0x1e8], 0
xor edx, edx
lea rcx, str.UnityWndClass
call qword [sym.imp.USER32.dll_FindWindowA]
mov qword [rbp + 0x1e8], rax
cmp qword [rbp + 0x1e8], 0
jne 0x140020ad1
mov dword [rbp + 0x704], 0xc8
lea rdx, [rbp + 0x704]
lea rcx, [rbp + 0x6e8]
call fcn.140011960
mov rcx, rax
call fcn.140011a9b
jmp 0x140020a8a
mov dword [rbp + 0x204], 0x103
cmp dword [rbp + 0x204], 0x103
jne 0x140020b37
xor r9d, r9d
xor r8d, r8d
mov edx, 0x10
mov rcx, qword [rbp + 0x1e8]
call qword [sym.imp.USER32.dll_SendMessageA]
lea rdx, [rbp + 0x204]
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov dword [rbp + 0x744], 0xc8
lea rdx, [rbp + 0x744]
lea rcx, [rbp + 0x728]
call fcn.140011960
mov rcx, rax
call fcn.140011a9b
jmp 0x140020adb
mov edx, 0xffffffff
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [0x140037d78]
call qword [sym.imp.ucrtbased.dll_system]
nop
lea rcx, [rbp + 8]
call fcn.14001139d
jmp 0x140020e2c
lea rax, [rbp + 0x768]
mov qword [rbp + 0x7a8], rax
lea rdx, [0x140037bf6]
mov rcx, qword [rbp + 0x7a8]
call fcn.1400115c8
mov qword [rbp + 0xa38], rax
mov rax, qword [rbp + 0xa38]
mov qword [rbp + 0xa40], rax
mov rax, qword [rbp + 0xa40]
mov qword [rbp + 0xa48], rax
lea rax, [rbp + 0x7c8]
mov qword [rbp + 0x808], rax
lea rdx, str.Path
mov rcx, qword [rbp + 0x808]
call fcn.1400115c8
mov qword [rbp + 0xa50], rax
mov rax, qword [rbp + 0xa50]
mov qword [rbp + 0xa58], rax
mov rax, qword [rbp + 0xa58]
mov qword [rbp + 0xa60], rax
lea rax, [rbp + 0x828]
mov qword [rbp + 0x868], rax
lea rdx, str.Setting
mov rcx, qword [rbp + 0x868]
call fcn.1400115c8
mov qword [rbp + 0xa68], rax
mov rax, qword [rbp + 0xa68]
mov qword [rbp + 0xa70], rax
mov rax, qword [rbp + 0xa48]
mov qword [rsp + 0x20], rax
mov r9, qword [rbp + 0xa60]
mov r8, qword [rbp + 0xa70]
lea rdx, [rbp + 0x888]
lea rcx, [rbp + 8]
call fcn.1400112c1
mov qword [rbp + 0xa78], rax
mov rdx, qword [rbp + 0xa78]
lea rcx, [0x14003f4c8]
call fcn.140011393
lea rcx, [rbp + 0x888]
call fcn.14001124e
mov eax, dword [section..data]
mov dword [rbp + 0xa34], eax
lea rax, [rbp + 0x8c8]
mov qword [rbp + 0x908], rax
lea rdx, [0x140037d94]
mov rcx, qword [rbp + 0x908]
call fcn.1400115c8
mov qword [rbp + 0xa38], rax
mov rax, qword [rbp + 0xa38]
mov qword [rbp + 0xa40], rax
mov rax, qword [rbp + 0xa40]
mov qword [rbp + 0xa48], rax
lea rax, [rbp + 0x928]
mov qword [rbp + 0x968], rax
lea rdx, str.Setting
mov rcx, qword [rbp + 0x968]
call fcn.1400115c8
mov qword [rbp + 0xa50], rax
mov rax, qword [rbp + 0xa50]
mov qword [rbp + 0xa58], rax
mov r9d, dword [rbp + 0xa34]
mov r8, qword [rbp + 0xa48]
mov rdx, qword [rbp + 0xa58]
lea rcx, [rbp + 8]
call fcn.140011d6b
mov dword [section..data], eax
movzx eax, byte [0x14003f4c1]
mov dword [rbp + 0xa34], eax
lea rax, [rbp + 0x988]
mov qword [rbp + 0x9c8], rax
lea rdx, str.VSYNC
mov rcx, qword [rbp + 0x9c8]
call fcn.1400115c8
mov qword [rbp + 0xa38], rax
mov rax, qword [rbp + 0xa38]
mov qword [rbp + 0xa40], rax
mov rax, qword [rbp + 0xa40]
mov qword [rbp + 0xa48], rax
lea rax, [rbp + 0x9e8]
mov qword [rbp + 0xa28], rax
lea rdx, str.Setting
mov rcx, qword [rbp + 0xa28]
call fcn.1400115c8
mov qword [rbp + 0xa50], rax
mov rax, qword [rbp + 0xa50]
mov qword [rbp + 0xa58], rax
mov r9d, dword [rbp + 0xa34]
mov r8, qword [rbp + 0xa48]
mov rdx, qword [rbp + 0xa58]
lea rcx, [rbp + 8]
call fcn.140011d6b
test eax, eax
je 0x140020dd6
mov byte [rbp + 0xa60], 1
jmp 0x140020ddd
mov byte [rbp + 0xa60], 0
movzx eax, byte [rbp + 0xa60]
mov byte [0x14003f4c1], al
lea rcx, [0x14003f4c8]
call fcn.140011118
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x140020e23
lea rcx, str.Looks_like_youve_moved_your_game_somewhere_else___Lets_setup_again_n
call fcn.140011618
lea rcx, str.fps_config.ini
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.14001147e
nop
lea rcx, [rbp + 8]
call fcn.14001139d
lea rcx, [rbp - 0x30]
lea rdx, [0x140036190]
call fcn.140011abe
mov rcx, qword [rbp + 0xa80]
xor rcx, rbp
call fcn.140011645
lea rsp, [rbp + 0xa98]
pop rdi
pop rbp
ret