Function at 0x14000ddd0
Capabilities:
Check if file exists
Create directory
Get file attributes
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x140074040]
xor rax, rsp
mov qword [rbp + 8], rax
mov r13, rcx
mov qword [rsp + 0x38], rcx
xor edi, edi
mov dword [rsp + 0x30], edi
lea rcx, [rbp - 0x58]
call fcn.1400144c0
nop
mov rsi, qword [rbp - 0x48]
movabs rbx, 0x7ffffffffffffffe
mov rax, rbx
sub rax, rsi
cmp rax, 0x14
jb 0x14000e7dd
lea r15, [rbp - 0x58]
cmp qword [rbp - 0x40], 7
cmova r15, qword [rbp - 0x58]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea r14, [rsi + 0x14]
mov eax, 7
lea rdi, [rsp + 0x48]
lea ecx, [rax + 3]
cmp r14, rax
jbe 0x14000de9d
mov rax, r14
or rax, 7
cmp rax, rbx
ja 0x14000de7a
mov rbx, rax
cmp rax, rcx
cmovb rbx, rcx
inc rbx
mov qword [rsp + 0x30], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x48]
call fcn.140002710
mov rdi, rax
lea rax, [rbx - 1]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], rax
lea rbx, [rsi + rsi]
mov r8, rbx
mov rdx, r15
mov rcx, rdi
call fcn.1400539f0
movups xmm0, xmmword [str.TrainerSettings.ini]
movups xmmword [rbx + rdi], xmm0
movups xmm1, xmmword [0x140067218]
movups xmmword [rbx + rdi + 0x10], xmm1
movsd xmm0, qword [0x140067228]
movsd qword [rbx + rdi + 0x20], xmm0
xor r15d, r15d
mov word [rdi + r14*2], r15w
lea rdi, [r13 + 0x418]
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.140001df0
mov rdx, qword [rsp + 0x60]
cmp rdx, 7
jbe 0x14000df3c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000df37
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e81f
call fcn.1400308f0
lea rcx, [rbp - 0x58]
cmp qword [rbp - 0x40], 7
cmova rcx, qword [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14000df68
lea rcx, [rbp - 0x58]
cmp qword [rbp - 0x40], 7
cmova rcx, qword [rbp - 0x58]
call fcn.14003b8b8
mov ecx, 0x20
call fcn.140030924
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rax], r15w
cmp rax, rdi
je 0x14000dfaf
mov rdx, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14000dfa2
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
mov rcx, rbx
call fcn.1400022f0
nop
mov rsi, qword [r13 + 0x528]
mov qword [r13 + 0x528], rbx
test rsi, rsi
je 0x14000e01e
mov rdx, qword [rsi + 0x18]
cmp rdx, 7
jbe 0x14000e001
mov rcx, qword [rsi]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14000dffc
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000e81f
mov rcx, r8
call fcn.1400308f0
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], 7
mov word [rsi], r15w
mov edx, 0x20
mov rcx, rsi
call fcn.1400308f0
mov rbx, qword [r13 + 0x528]
mov ecx, 0x28
call fcn.140030924
mov rsi, rax
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
mov qword [rbp - 0x28], r15
mov qword [rbp - 0x20], r15
mov r8d, 7
lea rdx, str.Trainer
lea rcx, [rbp - 0x38]
call fcn.140002870
nop
mov dword [rsp + 0x30], SafeArrayGetElement
lea rcx, [rsi + 8]
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], r15
mov qword [rcx + 0x18], 7
mov word [rcx], r15w
lea rax, [rbp - 0x38]
cmp rcx, rax
je 0x14000e09f
lea rdx, [rbp - 0x38]
cmp qword [rbp - 0x20], 7
cmova rdx, qword [rbp - 0x38]
mov r8, qword [rbp - 0x28]
call fcn.1400022f0
mov qword [rsi], rbx
mov rdx, qword [rbp - 0x20]
cmp rdx, 7
jbe 0x14000e0e2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000e0dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e81f
call fcn.1400308f0
mov rbx, qword [r13 + 0x530]
mov qword [r13 + 0x530], rsi
test rbx, rbx
je 0x14000e153
mov rdx, qword [rbx + 0x20]
cmp rdx, 7
jbe 0x14000e135
mov rcx, qword [rbx + 8]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14000e130
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000e81f
mov rcx, r8
call fcn.1400308f0
mov qword [rbx + 0x18], r15
mov qword [rbx + 0x20], 7
mov word [rbx + 8], r15w
mov edx, 0x28
mov rcx, rbx
call fcn.1400308f0
cmp qword [rdi + 0x18], 7
jbe 0x14000e15d
mov rdi, qword [rdi]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov rsi, 0xffffffffffffffff
cmp eax, 0xffffffff
jne 0x14000e3af
lea rdx, [0x140063e5e]
lea ecx, [rsi + 3]
call fcn.14003bbc0
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], r15
mov qword [rbp], r15
mov r8, rsi
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x14000e1a0
mov rdx, rax
lea rcx, [rbp - 0x18]
call fcn.140002a20
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], r15w
lea r14, [rbp - 0x18]
mov r12, qword [rbp - 0x18]
mov r13, qword [rbp]
cmp r13, 0xf
cmova r14, r12
mov r15, qword [rbp - 8]
cmp r15, 7
jb 0x14000e24c
lea rdi, [r14 + r15]
lea r8, [rdi - 6]
sub r8, r14
mov edx, 0x43
mov rcx, r14
call fcn.140054150
mov rbx, rax
test rax, rax
je 0x14000e24c
mov r8d, 7
lea rdx, str.Chinese
mov rcx, rbx
call fcn.140054070
test eax, eax
je 0x14000e4fc
inc rbx
lea r8, [rdi - 6]
sub r8, rbx
mov edx, 0x43
mov rcx, rbx
call fcn.140054150
mov rbx, rax
test rax, rax
jne 0x14000e210
mov r8d, 7
lea rdx, str.English
lea rcx, [rsp + 0x68]
call fcn.1400022f0
mov rbx, qword [rsp + 0x38]
mov rbx, qword [rbx + 0x530]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xor r15d, r15d
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], r15
lea r8d, [r15 + 8]
lea rdx, str.Language
lea rcx, [rsp + 0x48]
call fcn.140002870
mov r9, qword [rbx]
cmp qword [r9 + 0x18], 7
jbe 0x14000e2a6
mov r9, qword [r9]
lea r8, [rsp + 0x68]
cmp qword [rbp - 0x80], 7
cmova r8, qword [rsp + 0x68]
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 7
cmova rdx, qword [rsp + 0x48]
lea rcx, [rbx + 8]
cmp qword [rcx + 0x18], 7
jbe 0x14000e2d5
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rdx, qword [rsp + 0x60]
cmp rdx, 7
jbe 0x14000e31e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000e318
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e7e3
call fcn.1400308f0
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 7
jbe 0x14000e35f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000e35a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e7e9
call fcn.1400308f0
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], r15w
cmp r13, 0xf
jbe 0x14000e3aa
lea rdx, [r13 + 1]
mov rax, r12
cmp rdx, 0x1000
jb 0x14000e3a2
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e7ef
mov rcx, r12
call fcn.1400308f0
mov r13, qword [rsp + 0x38]
mov rbx, qword [r13 + 0x530]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], r15
mov r8d, 7
lea rdx, str.ENGLISH
lea rcx, [rsp + 0x48]
call fcn.140002870
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], r15
mov r8d, 8
lea rdx, str.Language
lea rcx, [rsp + 0x68]
call fcn.140002870
nop
lea r8, [rbx + 8]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x68]
lea rdx, [rbp - 0x78]
mov rcx, qword [rbx]
call fcn.14000c990
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 7
jbe 0x14000e46a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000e465
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e7f5
call fcn.1400308f0
mov qword [rsp + 0x78], r15
mov qword [rbp - 0x80], 7
mov word [rsp + 0x68], r15w
mov rdx, qword [rsp + 0x60]
cmp rdx, 7
jbe 0x14000e4bf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000e4ba
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e7fb
call fcn.1400308f0
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x60], 7
mov word [rsp + 0x48], r15w
lea r14, [rbp - 0x78]
mov r15, qword [rbp - 0x78]
mov rax, qword [rbp - 0x60]
mov r12, qword [rbp - 0x68]
cmp rax, 7
jbe 0x14000e5a9
mov r14, r15
lea rbx, [r15 + r12*2]
mov rdi, r15
jmp 0x14000e5b5
sub rbx, r14
cmp rbx, 0xffffffffffffffff
je 0x14000e24c
lea rdi, [rbp - 0x18]
cmp r13, 0xf
cmova rdi, r12
cmp r15, 0xb
jb 0x14000e578
lea r14, [r15 + rdi]
lea r8, [r14 - 0xa]
sub r8, rdi
mov edx, 0x54
mov rcx, rdi
call fcn.140054150
mov rbx, rax
test rax, rax
je 0x14000e578
nop dword [rax + rax]
mov r8d, SafeArrayDestroy
lea rdx, str.Traditional
mov rcx, rbx
call fcn.140054070
test eax, eax
je 0x14000e5a4
inc rbx
lea r8, [r14 - 0xa]
sub r8, rbx
mov edx, 0x54
mov rcx, rbx
call fcn.140054150
mov rbx, rax
test rax, rax
jne 0x14000e540
mov rbx, rsi
lea rax, str.Chinese_Traditional
lea rdx, str.Chinese_Simplified
cmp rbx, 0xffffffffffffffff
cmovne rdx, rax
mov r8, rsi
inc r8
cmp word [rdx + r8*2], 0
jne 0x14000e594
jmp 0x14000e259
sub rbx, rdi
jmp 0x14000e57b
lea rcx, [rbp - 0x78]
lea rbx, [rcx + r12*2]
lea rdi, [rbp - 0x78]
cmp rdi, rbx
je 0x14000e5e2
sub r14, rdi
nop dword [rax]
movzx ecx, word [rdi]
call fcn.14003adb4
mov word [rdi + r14], ax
add rdi, 2
cmp rdi, rbx
jne 0x14000e5c0
mov rax, qword [rbp - 0x60]
mov r12, qword [rbp - 0x68]
mov r15, qword [rbp - 0x78]
lea rcx, [rbp - 0x78]
cmp rax, 7
seta bl
cmova rcx, r15
mov qword [rsp + 0x20], 0xa
lea r9, str.SIMPLIFIED
xor r8d, r8d
mov rdx, r12
call fcn.140002780
cmp rax, 0xffffffffffffffff
je 0x14000e618
xor edi, edi
mov ebx, edi
jmp 0x14000e64a
lea rcx, [rbp - 0x78]
test bl, bl
cmovne rcx, r15
mov qword [rsp + 0x20], SafeArrayDestroy
lea r9, str.TRADITIONAL
xor r8d, r8d
mov rdx, r12
call fcn.140002780
xor edi, edi
mov ebx, edi
cmp rax, 0xffffffffffffffff
sete bl
inc ebx
mov edx, ebx
call fcn.1400096f0
lea r14, [0x140077830]
mov qword [rsp + 0x40], r14
mov rcx, r14
call fcn.1400300f4
test eax, eax
jne 0x14000e801
mov eax, dword [0x14007787c]
cmp eax, 0x7fffffff
je 0x14000e80c
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x30]
mov r8d, 4
lea rdx, [rsp + 0x38]
mov rcx, qword [r13 + 8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x38]
mov r8d, 4
lea rdx, [rsp + 0x30]
mov rcx, qword [r13 + 8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
lea rdx, [r13 + 0x418]
cmp qword [rdx + 0x18], 7
jbe 0x14000e6dd
mov rdx, qword [rdx]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
nop
inc rsi
cmp word [rdx + rsi*2], 0
jne 0x14000e6f0
mov r8, rsi
lea rcx, [rsp + 0x48]
call fcn.140002870
lea rdx, [rsp + 0x48]
mov rcx, r13
call fcn.14000a9d0
nop
mov rcx, r14
call fcn.1400300fc
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 7
jbe 0x14000e75e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000e759
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e81f
call fcn.1400308f0
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], 7
mov word [rbp - 0x78], di
mov rdx, qword [rbp - 0x40]
cmp rdx, 7
jbe 0x14000e7aa
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000e7a5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000e7d7
call fcn.1400308f0
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.1400308d0
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400377ec
nop
call fcn.140001300
nop
call fcn.1400377ec
nop
call fcn.1400377ec
nop
call fcn.1400377ec
nop
call fcn.1400377ec
nop
call fcn.1400377ec
int3
mov ecx, 5
call fcn.14002ffb8
int3
dec eax
mov dword [0x14007787c], eax
mov ecx, 6
call fcn.14002ffb8
nop
call fcn.1400377ec
int3