Function at 0x1400012e0
Capabilities:
Check mutex on windows
Get common file path
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rsp - 0x500]
sub rsp, 0x600
mov rax, qword [0x14004a0c0]
xor rax, rsp
mov qword [rbp + 0x4f0], rax
xor r12d, r12d
lea r8, str.Local3DMigotoLoader
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x140001bf4
lea rcx, str._n________________________________3DMigoto_Loader__Stable_ByPass_ACE_version_________________________________n_n
call fcn.140001060
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r12 + 1]
lea rcx, str.d3dx.ini
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140001c09
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
lea ecx, [rax + 1]
call fcn.140006b8c
mov r14, rax
mov qword [rsp + 0x20], r12
lea r9, [rbp]
mov r8d, edi
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140001bdf
cmp edi, dword [rbp]
jne 0x140001bdf
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, r14
movzx ecx, byte [rbx]
cmp cl, 0x20
je 0x1400013e0
cmp cl, 9
jne 0x1400013e5
inc rbx
jmp 0x1400013d3
movabs r15, 0x100002200
test cl, cl
je 0x140001bb2
cmp cl, 0x5b
jne 0x14000142f
inc rbx
lea rdi, str.loader
movzx ecx, byte [rbx]
call fcn.140011ce0
movsx ecx, byte [rdi]
cmp eax, ecx
jne 0x140001420
inc rbx
inc rdi
cmp byte [rdi], r12b
jne 0x140001406
movzx eax, byte [rbx]
movzx ecx, al
cmp al, 0x5d
jne 0x14000142f
cmp byte [rdi], r12b
je 0x140001470
test cl, cl
je 0x140001447
cmp cl, 0xa
je 0x14000145b
cmp cl, 0xd
je 0x140001447
inc rbx
movzx ecx, byte [rbx]
test cl, cl
jne 0x140001433
movsx rcx, byte [rbx]
cmp cl, 0xa
je 0x14000145b
cmp cl, 0x20
ja 0x140001460
bt r15, rcx
jae 0x140001460
inc rbx
jmp 0x140001447
test cl, cl
je 0x140001bb2
jmp 0x1400013f7
cmp al, 0xa
je 0x140001484
cmp al, 0xd
je 0x140001487
inc rbx
movzx eax, byte [rbx]
test al, al
jne 0x140001470
jmp 0x140001487
inc rbx
movzx ecx, byte [rbx]
cmp cl, 0xa
je 0x140001484
cmp cl, 0xd
je 0x140001484
cmp cl, 0x20
je 0x140001484
cmp cl, 9
je 0x140001484
mov rdi, rbx
cmp cl, 0x20
je 0x1400014ab
cmp cl, 9
jne 0x1400014b3
inc rdi
movzx ecx, byte [rdi]
jmp 0x1400014a1
test cl, cl
je 0x140001bbf
nop dword [rax + rax]
cmp cl, 0x5b
je 0x140001bbf
lea rsi, str.target
movzx ecx, byte [rdi]
call fcn.140011ce0
movsx ecx, byte [rsi]
cmp eax, ecx
jne 0x1400014f0
inc rdi
inc rsi
cmp byte [rsi], r12b
jne 0x1400014d0
nop word [rax + rax]
movzx eax, byte [rdi]
cmp al, 0x20
je 0x1400014fb
cmp al, 9
jne 0x140001500
inc rdi
jmp 0x1400014f0
cmp al, 0x3d
jne 0x140001509
cmp byte [rsi], r12b
je 0x140001548
test al, al
je 0x140001522
nop dword [rax]
cmp al, 0xa
je 0x140001536
cmp al, 0xd
je 0x140001522
inc rdi
movzx eax, byte [rdi]
test al, al
jne 0x140001510
movsx rcx, byte [rdi]
cmp cl, 0xa
je 0x140001536
cmp cl, 0x20
ja 0x14000153b
bt r15, rcx
jae 0x14000153b
inc rdi
jmp 0x140001522
test cl, cl
je 0x140001bbf
jmp 0x1400014c0
inc rdi
nop dword [rax + rax]
movzx eax, byte [rdi]
cmp al, 0x20
je 0x14000155b
cmp al, 9
jne 0x140001560
inc rdi
jmp 0x140001550
lea rcx, [rbp + 0x1d0]
mov rdx, rdi
nop word [rax + rax]
movzx eax, byte [rdx]
mov byte [rcx], al
movzx eax, byte [rdx]
cmp al, 0xa
je 0x14000159d
cmp al, 0xd
je 0x14000159d
test al, al
je 0x14000159d
inc rcx
inc rdx
mov rax, rdx
sub rax, rdi
cmp rax, 0x104
jb 0x140001570
jmp 0x140001bbf
lea rax, [rbp + 0x1d0]
movabs rsi, 0x100002600
cmp rcx, rax
jb 0x1400015d7
movsx rax, byte [rcx]
test al, al
je 0x1400015c5
cmp al, 0x20
ja 0x1400015d7
bt rsi, rax
jae 0x1400015d7
mov byte [rcx], r12b
dec rcx
lea rax, [rbp + 0x1d0]
cmp rcx, rax
jae 0x1400015b3
movzx ecx, byte [rbx]
cmp cl, 0x20
je 0x1400015e4
cmp cl, 9
jne 0x1400015e9
inc rbx
jmp 0x1400015d7
test cl, cl
je 0x140001bcc
cmp cl, 0x5b
je 0x140001bcc
lea rdi, str.module
movzx ecx, byte [rbx]
call fcn.140011ce0
movsx ecx, byte [rdi]
cmp eax, ecx
jne 0x140001620
inc rbx
inc rdi
cmp byte [rdi], r12b
jne 0x140001601
nop dword [rax + rax]
movzx eax, byte [rbx]
cmp al, 0x20
je 0x14000162b
cmp al, 9
jne 0x140001630
inc rbx
jmp 0x140001620
cmp al, 0x3d
jne 0x140001639
cmp byte [rdi], r12b
je 0x140001678
test al, al
je 0x140001652
nop dword [rax]
cmp al, 0xa
je 0x140001666
cmp al, 0xd
je 0x140001652
inc rbx
movzx eax, byte [rbx]
test al, al
jne 0x140001640
movsx rcx, byte [rbx]
cmp cl, 0xa
je 0x140001666
cmp cl, 0x20
ja 0x14000166b
bt r15, rcx
jae 0x14000166b
inc rbx
jmp 0x140001652
test cl, cl
je 0x140001bcc
jmp 0x1400015f1
inc rbx
nop dword [rax + rax]
movzx eax, byte [rbx]
cmp al, 0x20
je 0x14000168b
cmp al, 9
jne 0x140001690
inc rbx
jmp 0x140001680
lea rcx, [rbp + 0xc0]
mov rdx, rbx
mov r8d, 0x2401
movsx eax, byte [rdx]
mov byte [rcx], al
cmp al, 0xd
ja 0x1400016af
bt r8d, eax
jb 0x1400016c8
inc rcx
inc rdx
mov rax, rdx
sub rax, rbx
cmp rax, 0x104
jb 0x1400016a0
jmp 0x140001bcc
lea rax, [rbp + 0xc0]
cmp rcx, rax
jb 0x1400016f8
movsx rax, byte [rcx]
test al, al
je 0x1400016e6
cmp al, 0x20
ja 0x1400016f8
bt rsi, rax
jae 0x1400016f8
mov byte [rcx], r12b
dec rcx
lea rax, [rbp + 0xc0]
cmp rcx, rax
jae 0x1400016d4
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], r12
lea rax, [rbp + 0xc0]
mov r15, 0xffffffffffffffff
mov rbx, r15
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], r12b
jne 0x140001720
movabs rsi, 0x7fffffffffffffff
cmp rbx, rsi
ja 0x140001c16
cmp rbx, 0xf
ja 0x14000176b
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], 0xf
mov r8, rbx
lea rdx, [rbp + 0xc0]
lea rcx, [rbp - 0x60]
call fcn.1400201b0
mov byte [rbp + rbx - 0x60], r12b
jmp 0x140001803
mov rax, rbx
or rax, 0xf
cmp rax, rsi
jbe 0x1400017a4
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140006b48
test rax, rax
je 0x140001c1c
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1400017e1
mov ecx, 0x16
cmp rax, rcx
cmovb rax, rcx
mov rsi, rax
lea rcx, [rax + 1]
cmp rcx, 0x1000
jb 0x1400017cf
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140001bd9
jmp 0x140001785
test rcx, rcx
je 0x1400017de
call fcn.140006b48
mov rdi, rax
jmp 0x1400017e1
mov rdi, r12
mov qword [rbp - 0x60], rdi
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rsi
mov r8, rbx
lea rdx, [rbp + 0xc0]
mov rcx, rdi
call fcn.1400201b0
mov byte [rdi + rbx], r12b
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x40]
call fcn.1400022f0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], r12
mov qword [rbp + 0x20], 7
mov word [rbp + 8], r12w
lea rdx, [rbp + 0x2e0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
test eax, eax
jne 0x140001860
mov rdx, r12
mov qword [rbp - 0x70], rdx
mov r8d, 7
mov qword [rbp - 0x68], r8
mov word [rbp - 0x80], r12w
jmp 0x140001896
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], r12
lea rax, [rbp + 0x2e0]
mov r8, r15
inc r8
cmp word [rax + r8*2], 0
jne 0x140001872
lea rdx, [rbp + 0x2e0]
lea rcx, [rbp - 0x80]
call fcn.140001d10
nop
mov r8, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x70]
mov rax, r8
sub rax, rdx
lea rcx, [rbp - 0x80]
cmp rax, 1
jb 0x1400018cd
lea rax, [rdx + 1]
mov qword [rbp - 0x70], rax
cmp r8, 7
cmova rcx, qword [rbp - 0x80]
mov eax, dword [0x14002ed98]
mov word [rcx + rdx*2], ax
mov word [rcx + rdx*2 + 2], r12w
lea rax, [rbp - 0x80]
jmp 0x1400018e0
mov qword [rsp + 0x20], 1
mov edx, 1
call fcn.140002060
movups xmm0, xmmword [rax]
movups xmmword [rbp + 8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x18], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 7
mov word [rax], r12w
mov r9, rbx
lea r8, [rbp + 8]
lea rcx, [rbp + 0x28]
call fcn.140001e40
nop
mov rdx, qword [rbp + 0x20]
cmp rdx, 7
jbe 0x140001951
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000194b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001c22
call fcn.140006b40
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 7
jbe 0x140001991
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000198c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001c28
call fcn.140006b40
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], 7
mov word [rbp - 0x80], r12w
mov rdx, qword [rbp - 0x28]
cmp rdx, 7
jbe 0x1400019e2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400019dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001c2e
call fcn.140006b40
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], 7
mov word [rbp - 0x40], r12w
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
mov r9d, r15d
lea r8, [rbp + 0x1d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
mov eax, 2
mul rbx
cmovo rax, r15
mov rcx, rax
call fcn.140006b8c
mov rdi, rax
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
mov r9d, r15d
lea r8, [rbp + 0x1d0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rcx, [rbp + 0x28]
cmp qword [rbp + 0x40], 7
cmova rcx, qword [rbp + 0x28]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x54], xmm0
movups xmmword [rbp + 0x64], xmm0
movups xmmword [rbp + 0x74], xmm0
movups xmmword [rbp + 0x84], xmm0
movups xmmword [rbp + 0x94], xmm0
movups xmmword [rbp + 0xa4], xmm0
mov dword [rbp + 0xb4], eax
mov dword [rbp + 0x50], 0x68
movups xmmword [rbp - 0x18], xmm0
mov qword [rbp - 8], rax
mov dword [rsp + 0x70], r12d
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], rcx
lea rax, [rbp - 0x18]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x50]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140002610
test eax, eax
jne 0x140001b09
mov edx, dword [rbp - 8]
lea rcx, str.Process__lu_successfully_launched_with_dll_injected__n
call fcn.140001010
mov rcx, qword [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140001b27
cmp eax, 3
jne 0x140001b19
mov edx, eax
lea rcx, str.Error__lu:_Cannot_find_target_program_path._n
jmp 0x140001b22
mov edx, eax
lea rcx, str.Error__lu:_Cannot_launch_process_and_inject_dll._n
call fcn.140001010
mov ecx, 0xbb8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, r14
call fcn.140006b40
nop
mov rdx, qword [rbp + 0x40]
cmp rdx, 7
jbe 0x140001b77
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001b72
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001bac
call fcn.140006b40
mov eax, 1
mov rcx, qword [rbp + 0x4f0]
xor rcx, rsp
call fcn.140006b20
lea r11, [rsp + 0x600]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.140012528
int3
lea rcx, str.d3dx.ini_missing_required__Loader__section_n
call fcn.1400012b0
int3
lea rcx, str.d3dx.ini__Loader__section_missing_required__target__setting_n
call fcn.1400012b0
int3
lea rcx, str.d3dx.ini__Loader__section_missing_required__module__setting_n
call fcn.1400012b0
int3
call fcn.1400011b0
int3
lea rcx, str.Error_reading_d3dx.ini_n
call fcn.140011d0c
mov rdx, rax
call fcn.140001290
int3
lea rcx, str.ERROR:_Another_instance_of_the_3DMigoto_Loader_is_already_running._Please_close_it_and_try_again_n
call fcn.140011d0c
mov rdx, rax
call fcn.140001290
int3
lea rcx, str.Unable_to_open_d3dx.ini_n
call fcn.1400012b0
int3
call fcn.140001250
int3
call fcn.140012528
nop
call fcn.140012528
nop
call fcn.140012528
nop
call fcn.140012528
int3