Function at 0x14002e3b8
Capabilities:
Get common file path
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x2070]
mov eax, 0x2170
call fcn.140071ce0
sub rsp, rax
mov rax, qword [0x1400d9448]
xor rax, rsp
mov qword [rbp + 0x2060], rax
mov rdi, rdx
mov ebx, ecx
mov rcx, qword [0x1400dbe78]
xor r14d, r14d
test rcx, rcx
jne 0x14002e418
call fcn.14002eac0
test al, al
je 0x14002ea25
mov rcx, qword [0x1400dbe78]
mov sil, r14b
mov qword [rsp + 0x50], r14
mov rax, qword [rcx]
mov qword [rsp + 0x50], r14
lea rdx, [rsp + 0x50]
call qword [rax + 0x68]
test eax, eax
js 0x14002ea11
mov qword [rsp + 0x48], r14
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14002ea7a
mov rax, qword [rcx]
mov qword [rsp + 0x48], r14
lea r8, [rsp + 0x48]
lea rdx, [0x1400a4308]
call qword [rax]
test eax, eax
js 0x14002ea00
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r14
lea r8, [rsp + 0x58]
mov rdx, rdi
mov ecx, ebx
call fcn.14003c814
mov r12d, 0x1000
mov rcx, qword [rsp + 0x58]
cmp qword [rsp + 0x60], rcx
je 0x14002e9d0
xor edx, edx
mov r8d, 0x2000
lea rcx, [rbp + 0x60]
call fcn.140074190
lea rdx, [rbp + 0x60]
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14002e9cb
mov qword [rbp - 0x28], r14
mov qword [rbp - 0x18], r14
mov r13d, 7
mov qword [rbp - 0x10], r13
mov word [rbp - 0x28], r14w
lea rdx, str.FLiNGTrainer.tmp
lea rcx, [rbp - 0x28]
call fcn.140021bc0
nop
lea rax, [rbp + 0x60]
or r9, 0xffffffffffffffff
inc r9
cmp word [rax + r9*2], r14w
jne 0x14002e4f2
lea r8, [rbp + 0x60]
xor edx, edx
lea rcx, [rbp - 0x28]
call fcn.14002ec14
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x50], r14
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x68], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x58], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r13
mov word [rax], r14w
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x14002e56e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, r12
jb 0x14002e569
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea85
call fcn.1400716ac
mov qword [rbp - 0x18], r14
mov qword [rbp - 0x10], r13
mov word [rbp - 0x28], r14w
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x38], r14
mov qword [rbp - 0x30], r13
mov word [rbp - 0x48], r14w
lea rdx, [0x1400a0fac]
lea rcx, [rbp - 0x48]
call fcn.140021bc0
nop
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], r13
mov word [rsp + 0x78], r14w
lea rdx, [0x1400a4a5c]
lea rcx, [rsp + 0x78]
call fcn.140021bc0
nop
lea r8, [rbp - 0x48]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x68]
call fcn.140041048
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x14002e612
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, r12
jb 0x14002e60d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea8b
call fcn.1400716ac
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], r13
mov word [rsp + 0x78], r14w
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x14002e65c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, r12
jb 0x14002e657
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea91
call fcn.1400716ac
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x14002e8f9
mov qword [rbp + 0x18], r14
mov qword [rbp + 0x28], r14
mov qword [rbp + 0x30], r14
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 0x18]
call fcn.14001e28c
nop
mov edi, r14d
lea rdx, [rbp + 0x18]
lea rcx, [rbp - 0x68]
call fcn.140009c04
mov edx, edi
lea rcx, [rbp + 0x38]
call fcn.14002dd88
nop
mov r9d, 1
lea r8, [0x1400a4a74]
xor edx, edx
lea rcx, [rbp + 0x38]
call fcn.14002ec14
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x38], r14
mov qword [rbp - 0x30], r14
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x38], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r13
mov word [rax], r14w
mov r8d, 4
lea rdx, str..tmp
lea rcx, [rbp - 0x48]
call fcn.140021a48
mov qword [rbp - 8], r14
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], r14
movups xmm0, xmmword [rax]
movups xmmword [rbp - 8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 8], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r13
mov word [rax], r14w
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], r13
mov word [rsp + 0x78], r14w
lea rdx, str..tmp
lea rcx, [rsp + 0x78]
call fcn.140021bc0
nop
lea r8, [rbp - 8]
lea rdx, [rsp + 0x78]
lea rcx, [rbp - 0x68]
call fcn.140041048
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x14002e7c5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, r12
jb 0x14002e7c0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea9d
call fcn.1400716ac
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], r13
mov word [rsp + 0x78], r14w
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x14002e80f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, r12
jb 0x14002e80a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002eaa3
call fcn.1400716ac
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], r13
mov word [rbp - 8], r14w
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x14002e858
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, r12
jb 0x14002e853
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002eaa9
call fcn.1400716ac
mov qword [rbp - 0x38], r14
mov qword [rbp - 0x30], r13
mov word [rbp - 0x48], r14w
lea rcx, [rbp + 0x38]
call fcn.140021660
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x14002e8b7
inc edi
cmp edi, 0x32
jl 0x14002e6bb
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x14002e8f3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, r12
jb 0x14002e8ee
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea97
call fcn.1400716ac
cmp rbx, 0xffffffffffffffff
je 0x14002e927
mov dword [rsp + 0x40], r14d
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
sub r8, rdx
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rbp - 0x68]
call fcn.140040b7c
test al, al
je 0x14002e98f
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
jb 0x14002ea50
mov rcx, qword [rbp - 0x68]
test rcx, rcx
jne 0x14002ea50
mov rbx, r14
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x40], r14d
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14002eab5
mov rax, qword [rcx]
lea r9, [rsp + 0x40]
xor r8d, r8d
mov rdx, rbx
call qword [rax + 0x190]
test eax, eax
setns sil
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x14002e9cb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, r12
jb 0x14002e9c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002eaaf
call fcn.1400716ac
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14002ea00
mov rdx, qword [rsp + 0x68]
sub rdx, rcx
mov rax, rcx
cmp rdx, r12
jb 0x14002e9fa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea69
call fcn.1400716ac
nop
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14002ea11
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14002ea22
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
mov al, sil
mov rcx, qword [rbp + 0x2060]
xor rcx, rsp
call fcn.140071cb0
lea r11, [rsp + 0x2170]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
nop
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14002ea6f
jmp 0x14002e958
call fcn.1400780a4
nop
mov ecx, 0x8007000e
call fcn.14002e094
nop
mov ecx, 0x80004003
call fcn.14006e410
nop
call fcn.1400780a4
nop
call fcn.1400780a4
nop
call fcn.1400780a4
int3
call fcn.1400780a4
nop
call fcn.1400780a4
nop
call fcn.1400780a4
nop
call fcn.1400780a4
nop
call fcn.1400780a4
nop
mov ecx, 0x80004003
call fcn.14006e410
int3