Function at 0x14003b1f0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Load windows common language runtime
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20b0]
mov eax, 0x21b0
call fcn.1400732d0
sub rsp, rax
mov rax, qword [0x1400d3048]
xor rax, rsp
mov qword [rbp + 0x20a0], rax
xor esi, esi
mov rcx, qword [0x1400d6b90]
test rcx, rcx
jne 0x14003b325
mov qword [rsp + 0x48], rsi
lea r8, [rsp + 0x48]
lea rdx, [0x1400bea00]
lea rcx, [0x1400be9f0]
call qword [sym.imp.mscoree.dll_CLRCreateInstance]
lea rdi, [0x1400d6b90]
test eax, eax
js 0x14003b2db
mov qword [rsp + 0x50], rsi
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
lea r9, [rsp + 0x50]
lea r8, [0x1400be9e0]
lea rdx, str.v4.0.30319
call qword [rax + 0x18]
mov ebx, eax
test eax, eax
js 0x14003b2cc
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
mov r9, rdi
lea r8, [0x1400ba840]
lea rdx, [0x1400ba850]
call qword [rax + 0x48]
mov ebx, eax
test eax, eax
js 0x14003b2c1
mov rcx, qword [0x1400d6b90]
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + 0x10]
test ebx, ebx
jns 0x14003b31e
mov rcx, qword [0x1400d6b90]
test rcx, rcx
jne 0x14003b325
mov qword [rsp + 0x20], rdi
lea r9, [0x1400ba840]
lea r8, [0x1400ba850]
xor edx, edx
lea rcx, str.v2.0.50727
call qword [sym.imp.mscoree.dll_CorBindToRuntime]
test eax, eax
js 0x14003b5fe
mov rcx, qword [0x1400d6b90]
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rcx, qword [0x1400d6b90]
xor dil, dil
mov qword [rsp + 0x58], rsi
mov rax, qword [rcx]
mov qword [rsp + 0x58], rsi
lea rdx, [rsp + 0x58]
call qword [rax + 0x68]
test eax, eax
js 0x14003bc33
mov qword [rsp + 0x50], rsi
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14003bc89
mov rax, qword [rcx]
mov qword [rsp + 0x50], rsi
lea r8, [rsp + 0x50]
lea rdx, [0x1400be9d0]
call qword [rax]
test eax, eax
js 0x14003bc22
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], rsi
lea r8, [rbp - 0x80]
lea rdx, [0x1400be1c0]
mov ecx, 0x65
call fcn.14003ae20
mov rax, qword [rbp - 0x78]
mov r13, qword [rbp - 0x80]
mov qword [rsp + 0x78], r13
sub rax, r13
mov qword [rsp + 0x70], rax
je 0x14003bbec
xor edx, edx
mov r8d, 0x2000
lea rcx, [rbp + 0xa0]
call fcn.140074af0
lea rdx, [rbp + 0xa0]
mov ecx, 0x1000
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14003bbec
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 8], xmm1
mov r8d, 0x11
lea rdx, str.FLiNGTrainer.tmp
lea rcx, [rbp - 8]
call fcn.14001d490
nop
lea rax, [rbp + 0xa0]
mov r9, 0xffffffffffffffff
inc r9
cmp word [rax + r9*2], 0
jne 0x14003b414
lea r8, [rbp + 0xa0]
lea rcx, [rbp - 8]
call fcn.140034600
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x50], rsi
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x68], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x58], xmm1
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 7
mov word [rax], si
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x14003b49c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b497
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bc94
call fcn.1400726f0
movdqa xmm0, xmmword [0x1400c4f10]
movdqu xmmword [rbp + 8], xmm0
mov word [rbp - 8], si
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], rsi
mov r8d, 1
lea rdx, [0x1400be1a8]
lea rcx, [rbp - 0x48]
call fcn.14001d490
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x18], xmm0
mov qword [rbp + 0x28], rsi
mov qword [rbp + 0x30], rsi
mov r8d, 2
lea rdx, [0x1400be87c]
lea rcx, [rbp + 0x18]
call fcn.14001d490
nop
mov rbx, rsi
mov r12, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x28]
mov r15, qword [rbp + 0x18]
mov r14, qword [rbp - 0x38]
nop dword [rax]
lea r10, [rbp + 0x18]
cmp r12, 8
cmovae r10, r15
lea r11, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r11, qword [rbp - 0x68]
mov rax, qword [rbp - 0x58]
cmp rdi, rax
ja 0x14003b627
sub rax, rdi
cmp rbx, rax
ja 0x14003b627
test rdi, rdi
je 0x14003b5ca
lea rsi, [rax + 1]
lea rsi, [r11 + rsi*2]
lea rbx, [r11 + rbx*2]
movzx r9d, word [r10]
nop dword [rax]
mov rax, rsi
sub rax, rbx
sar rax, 1
mov ecx, 0
je 0x14003b58c
cmp word [rbx], r9w
je 0x14003b589
cmp rax, 1
je 0x14003b58c
dec rax
add rbx, 2
cmp word [rbx], r9w
jne 0x14003b576
mov rcx, rbx
mov rbx, rcx
test rcx, rcx
je 0x14003b627
mov rdx, rdi
mov rcx, r10
test rdi, rdi
je 0x14003b5c4
mov r8, rbx
sub r8, r10
nop dword [rax]
movzx eax, word [r8 + rcx]
cmp ax, word [rcx]
jne 0x14003b61e
add rcx, 2
sub rdx, 1
jne 0x14003b5b0
sub rbx, r11
sar rbx, 1
cmp rbx, 0xffffffffffffffff
je 0x14003b627
lea r9, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae r9, qword [rbp - 0x48]
mov qword [rsp + 0x20], r14
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.140042bf0
mov r14, qword [rbp - 0x38]
add rbx, r14
jmp 0x14003b510
xor r9d, r9d
lea r8, [0x1400be1f8]
lea rdx, [0x1400be210]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
xor al, al
jmp 0x14003bc48
add rbx, 2
jmp 0x14003b560
cmp r12, 8
jb 0x14003b663
lea rdx, [r12*2 + 2]
mov rax, r15
cmp rdx, 0x1000
jb 0x14003b65a
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bc9a
mov rcx, r15
call fcn.1400726f0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x14003b6a3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b69e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bcb8
call fcn.1400726f0
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
xor r14d, r14d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r14 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x14003baf9
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 0x38]
call fcn.14001b290
nop
mov esi, r14d
mov dword [rsp + 0x48], r14d
mov rcx, qword [rbp + 0x50]
mov qword [rsp + 0x60], rcx
mov r13, qword [rbp + 0x48]
mov rax, qword [rbp + 0x38]
mov qword [rsp + 0x68], rax
nop dword [rax]
nop dword [rax + rax]
lea r9, [rbp + 0x38]
cmp rcx, 8
cmovae r9, rax
mov rax, qword [rbp - 0x50]
cmp r13, rax
ja 0x14003b763
lea rdi, [rbp - 0x68]
cmp rax, 8
cmovae rdi, qword [rbp - 0x68]
mov qword [rbp - 0x58], r13
lea rbx, [r13*2]
mov r8, rbx
mov rdx, r9
mov rcx, rdi
call fcn.140074eb0
mov word [rdi + rbx], r14w
jmp 0x14003b785
mov rdx, r13
lea rcx, [rbp - 0x68]
call fcn.14001d760
mov rax, qword [rbp + 0x50]
mov qword [rsp + 0x60], rax
mov r13, qword [rbp + 0x48]
mov rax, qword [rbp + 0x38]
mov qword [rsp + 0x68], rax
mov edx, esi
lea rcx, [rbp + 0x78]
call fcn.14003c7f0
nop
mov r9d, 1
lea r8, [0x1400be894]
mov rcx, rax
call fcn.140034600
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
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], 7
mov word [rax], r14w
mov r8d, 4
lea rdx, str..tmp
lea rcx, [rbp - 0x48]
call fcn.140026c10
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x28], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x18], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], 7
mov word [rax], r14w
xorps xmm0, xmm0
movups xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], r14
mov qword [rbp + 0x70], r14
mov r8d, 4
lea rdx, str..tmp
lea rcx, [rbp + 0x58]
call fcn.14001d490
nop
xor ecx, ecx
mov ebx, ecx
mov r12, qword [rbp + 0x70]
cmp r12, 8
setae byte [rsp + 0x40]
mov rdi, qword [rbp + 0x68]
mov r15, qword [rbp + 0x58]
mov r14, qword [rbp - 0x18]
nop dword [rax]
lea r10, [rbp + 0x58]
cmp r12, 8
cmovae r10, r15
lea r11, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r11, qword [rbp - 0x68]
mov rax, qword [rbp - 0x58]
cmp rdi, rax
ja 0x14003b93b
sub rax, rdi
cmp rbx, rax
ja 0x14003b93b
test rdi, rdi
je 0x14003b8fa
lea rsi, [rax + 1]
lea rsi, [r11 + rsi*2]
lea rbx, [r11 + rbx*2]
movzx r9d, word [r10]
nop dword [rax + rax]
mov rax, rsi
sub rax, rbx
sar rax, 1
je 0x14003b8c7
cmp word [rbx], r9w
je 0x14003b8c4
cmp rax, 1
je 0x14003b8c7
dec rax
add rbx, 2
cmp word [rbx], r9w
jne 0x14003b8b1
mov rcx, rbx
mov rbx, rcx
test rcx, rcx
je 0x14003b93b
mov rdx, rdi
mov rcx, r10
test rdi, rdi
je 0x14003b8f4
mov r8, rbx
sub r8, r10
movzx eax, word [r8 + rcx]
cmp ax, word [rcx]
jne 0x14003b930
add rcx, 2
sub rdx, 1
jne 0x14003b8e0
sub rbx, r11
sar rbx, 1
cmp rbx, 0xffffffffffffffff
je 0x14003b93b
lea r9, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae r9, qword [rbp - 0x28]
mov qword [rsp + 0x20], r14
mov r8, rdi
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.140042bf0
mov r14, qword [rbp - 0x18]
add rbx, r14
xor ecx, ecx
jmp 0x14003b850
add rbx, 2
xor ecx, ecx
jmp 0x14003b8a0
cmp byte [rsp + 0x40], 0
je 0x14003b978
lea rdx, [r12*2 + 2]
mov rax, r15
cmp rdx, 0x1000
jb 0x14003b96f
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bca0
mov rcx, r15
call fcn.1400726f0
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x14003b9b9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b9b3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bca6
call fcn.1400726f0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x14003b9f9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003b9f4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bcac
call fcn.1400726f0
xor r14d, r14d
mov qword [rbp - 0x38], r14
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], r14w
mov rdx, qword [rbp + 0x90]
cmp rdx, 8
jb 0x14003ba50
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003ba4b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bcb2
call fcn.1400726f0
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 0x14003baac
mov esi, dword [rsp + 0x48]
inc esi
mov dword [rsp + 0x48], esi
cmp esi, 0x32
jge 0x14003baac
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
jmp 0x14003b720
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x14003baee
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003bae9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bcb8
call fcn.1400726f0
mov r13, qword [rsp + 0x78]
cmp rbx, 0xffffffffffffffff
je 0x14003bb22
mov dword [rsp + 0x48], r14d
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x48]
mov r8d, dword [rsp + 0x70]
mov rdx, r13
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14003bba8
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
jb 0x14003bb8f
mov rcx, qword [rbp - 0x68]
test rcx, rcx
jne 0x14003bb8f
mov rbx, r14
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x48], r14d
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14003bcbe
mov rax, qword [rcx]
lea r9, [rsp + 0x48]
xor r8d, r8d
mov rdx, rbx
call qword [rax + 0x190]
test eax, eax
setns dil
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x14003bbab
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14003bc7e
jmp 0x14003bb57
xor dil, dil
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x14003bbec
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003bbe6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bcc9
call fcn.1400726f0
nop
test r13, r13
je 0x14003bc22
mov rdx, qword [rbp - 0x70]
sub rdx, r13
mov rax, r13
cmp rdx, 0x1000
jb 0x14003bc19
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003bc78
mov rcx, r13
call fcn.1400726f0
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14003bc33
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14003bc44
mov rdx, qword [rcx]
call qword [rdx + 0x10]
nop
movzx eax, dil
mov rcx, qword [rbp + 0x20a0]
xor rcx, rsp
call fcn.1400726d0
lea r11, [rsp + 0x21b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140079308
nop
mov ecx, 0x8007000e
call fcn.14003b050
nop
mov ecx, 0x80004003
call fcn.14006fec0
nop
call fcn.140079308
nop
call fcn.140079308
nop
call fcn.140079308
nop
call fcn.140079308
nop
call fcn.140079308
nop
call fcn.140079308
nop
call fcn.140079308
nop
mov ecx, 0x80004003
call fcn.14006fec0
nop
call fcn.140079308
int3