Function at 0x140019690
Capabilities:
Get common file path
Parse pe header

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 - 0x5b0]
sub rsp, 0x6b0
mov rax, qword [0x1401bc300]
xor rax, rsp
mov qword [rbp + 0x5a0], rax
mov r15, rcx
movabs rax, 0x1650f25e03ae7ee2
mov qword [rbp + 0x380], rax
movabs rax, 0x652057722c64d4d6
mov qword [rbp + 0x388], rax
movabs rax, 0x7a3e803570c10a8c
mov qword [rbp + 0x3a0], rax
movabs rax, 0x65205772491cb1f8
mov qword [rbp + 0x3a8], rax
xorps xmm2, xmm2
lea rax, [rsp + 0x60]
mov esi, 2
mov ecx, esi
xor r13d, r13d
mov qword [rax], r13
mov qword [rax + 8], r13
lea rax, [rax + 0x10]
sub rcx, 1
jne 0x140019721
movdqa xmm0, xmmword [rbp + 0x380]
xorps xmm0, xmmword [rbp + 0x3a0]
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x70], xmm2
lea rcx, [rbp + 0x70]
lea rax, [rsp + 0x60]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm0
movups xmm1, xmmword [rax + 0x80]
movups xmmword [rcx], xmm1
movups xmm0, xmmword [rax + 0x90]
movups xmmword [rcx + 0x10], xmm0
movups xmm1, xmmword [rax + 0xa0]
movups xmmword [rcx + 0x20], xmm1
movups xmm0, xmmword [rax + 0xb0]
movups xmmword [rcx + 0x30], xmm0
movups xmm1, xmmword [rax + 0xc0]
movups xmmword [rcx + 0x40], xmm1
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
lea rax, [rbp + 0x70]
mov rdi, 0xffffffffffffffff
mov r8, rdi
inc r8
cmp byte [rax + r8], r13b
jne 0x1400197f0
lea rdx, [rbp + 0x70]
lea rcx, [rsp + 0x38]
call fcn.14000b450
nop
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.140017480
mov r12, rax
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x140019858
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140019853
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140019853
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400f2e38
movdqa xmm0, xmmword [0x1400f93e0]
movdqu xmmword [rsp + 0x48], xmm0
mov byte [rsp + 0x38], 0
test r12, r12
jne 0x140019877
xor al, al
jmp 0x140019dd3
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0x470]
call sub.VCRUNTIME140.dll_memset
mov edx, 0x104
lea rcx, [rbp + 0x470]
call qword [sym.imp.kernel32.dll_GetSystemDirectoryA]
xorps xmm0, xmm0
movups xmmword [rbp + 0x360], xmm0
mov qword [rbp + 0x370], r13
mov qword [rbp + 0x378], r13
lea rax, [rbp + 0x470]
mov r8, rdi
nop
inc r8
cmp byte [rax + r8], 0
jne 0x1400198c0
lea rdx, [rbp + 0x470]
lea rcx, [rbp + 0x360]
call fcn.14000b450
nop
mov rcx, qword [rbp + 0x370]
mov rdx, qword [rbp + 0x378]
mov rax, rdx
sub rax, rcx
cmp rax, 0xd
jb 0x140019934
lea rax, [rcx + 0xd]
mov qword [rbp + 0x370], rax
lea rbx, [rbp + 0x360]
cmp rdx, 0xf
cmova rbx, qword [rbp + 0x360]
add rbx, rcx
mov r8d, 0xd
lea rdx, [0x1400f93b0]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy_1
mov byte [rbx + 0xd], 0
jmp 0x14001995b
mov qword [rsp + 0x20], 0xd
lea r9, [0x1400f93b0]
movzx r8d, byte [rsp + 0x30]
mov edx, 0xd
lea rcx, [rbp + 0x360]
call fcn.14000ba30
lea rcx, [rbp + 0x360]
cmp qword [rbp + 0x378], 0xf
cmova rcx, qword [rbp + 0x360]
xor edx, edx
lea r8d, [rdx + 1]
call qword [sym.imp.kernel32.dll_LoadLibraryExA]
mov r10, rax
test rax, rax
je 0x140019d8a
mov eax, 0x5a4d
cmp word [r10], ax
jne 0x140019d8a
movsxd rcx, dword [r10 + 0x3c]
cmp dword [rcx + r10], 0x4550
jne 0x140019d8a
mov r8d, dword [rcx + r10 + 0x50]
movabs rax, 0x12d0c774f5171c25
mov qword [rbp + 0x380], rax
movabs rax, 0x117820d32233e30d
mov qword [rbp + 0x388], rax
movabs rdx, 0x1fffffffe0000000
mov qword [rbp + 0x390], rdx
movabs rcx, 0xe000000020006310
mov qword [rbp + 0x398], rcx
movabs rax, 0x6aa8bf4bca28235d
mov qword [rbp + 0x3c0], rax
movabs rax, 0x690058ab1d0cdc32
mov qword [rbp + 0x3c8], rax
mov qword [rbp + 0x3d0], rdx
mov qword [rbp + 0x3d8], rcx
xorps xmm4, xmm4
xorps xmm5, xmm5
lea rax, [rsp + 0x60]
mov r14d, 4
mov ecx, r14d
nop dword [rax + rax]
mov qword [rax], r13
mov qword [rax + 8], r13
lea rax, [rax + 0x10]
sub rcx, 1
jne 0x140019a40
movdqa xmm0, xmmword [rbp + 0x380]
xorps xmm0, xmmword [rbp + 0x3c0]
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [rbp + 0x390]
xorps xmm1, xmmword [rbp + 0x3d0]
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmmword [rbp - 0x80], xmm4
movdqa xmmword [rbp - 0x70], xmm5
lea rax, [rbp + 0x140]
lea rcx, [rsp + 0x60]
mov rdx, rsi
nop dword [rax]
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmm1, xmmword [rcx + 0x70]
movups xmmword [rax - 0x10], xmm1
lea rcx, [rcx + 0x80]
sub rdx, 1
jne 0x140019aa0
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
lea rax, [rbp + 0x140]
nop
inc rdi
cmp byte [rax + rdi], 0
jne 0x140019b00
mov rbx, r8
sub rbx, rdi
je 0x140019d8a
mov r9, r10
movzx r11d, byte [rsp + 0x60]
nop
lea rdx, [0x1400f93c0]
test r11b, r11b
je 0x140019b62
lea rcx, [rbp + 0x140]
lea rax, [rbp + 0x140]
mov r8, r9
sub r8, rax
movzx eax, r11b
cmp al, 0x78
jne 0x140019b55
movzx eax, byte [rdx]
cmp byte [r8 + rcx], al
jne 0x140019d78
inc rdx
inc rcx
movzx eax, byte [rcx]
test al, al
jne 0x140019b44
test r9, r9
je 0x140019d8a
movsxd rdi, dword [r9 + 8]
sub rdi, r10
add rdi, 0xc
add rdi, r12
add rdi, r9
je 0x140019d8a
mov rbx, qword [r15 + 0x58]
mov ecx, dword [0x1401bdaa0]
mov rax, qword gs:[0x58]
mov edx, 0x10
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x1401bcdd8], ecx
jg 0x140019f83
mov dword [rbp + 0x580], 0x25ff
mov word [rbp + 0x584], 0
mov qword [rbp + 0x586], rbx
mov rcx, qword [r15 + 0x68]
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x420], xmm0
mov qword [rbp + 0x430], r13
mov rax, qword [r15 + 0x100]
shl rax, 8
or rax, 0x17
mov qword [rbp + 0x400], rax
mov qword [rbp + 0x408], rcx
lea rax, [rbp + 0x590]
mov qword [rbp + 0x410], rax
mov qword [rbp + 0x418], 0xe
lea rcx, [rbp + 0x400]
call fcn.14008aa90
mov rcx, qword [r15 + 0x68]
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x458], xmm0
mov qword [rbp + 0x468], r13
mov rax, qword [r15 + 0x100]
shl rax, 8
or rax, 0x18
mov qword [rbp + 0x438], rax
mov qword [rbp + 0x440], rcx
lea rax, [rbp + 0x580]
mov qword [rbp + 0x448], rax
mov qword [rbp + 0x450], 0xe
lea rcx, [rbp + 0x438]
call fcn.14008aa90
mov rax, qword [0x1401bcdd0]
mov rcx, rdi
call rax
movzx ebx, al
mov rdx, qword [r15 + 0x68]
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x3a0], xmm0
mov qword [rbp + 0x3b0], r13
mov rcx, qword [r15 + 0x100]
shl rcx, 8
or rcx, 0x18
mov qword [rbp + 0x380], rcx
mov qword [rbp + 0x388], rdx
lea rax, [rbp + 0x590]
mov qword [rbp + 0x390], rax
mov qword [rbp + 0x398], 0xe
lea rcx, [rbp + 0x380]
call fcn.14008aa90
test bl, bl
je 0x140019d8a
mov qword [rbp + 0x580], r13
mov r9d, 8
mov r8, rdi
lea rdx, [rbp + 0x580]
mov rcx, r15
call fcn.14001a280
mov rax, qword [rbp + 0x580]
mov qword [r15 + 0x110], rax
mov bl, 1
jmp 0x140019d8c
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmm1, xmmword [rcx + 0x70]
movups xmmword [rax - 0x10], xmm1
lea rcx, [rcx + 0x80]
sub rdx, 1
je 0x140019e69
jmp 0x140019d20
inc r9
mov rax, r9
sub rax, r10
cmp rax, rbx
jb 0x140019b20
xor bl, bl
mov rdx, qword [rbp + 0x378]
cmp rdx, 0xf
jbe 0x140019dd0
inc rdx
mov rcx, qword [rbp + 0x360]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140019dcb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140019dcb
call qword [sym.imp.ucrtbase.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400f2e38
movzx eax, bl
mov rcx, qword [rbp + 0x5a0]
xor rcx, rsp
call fcn.1400f3250
lea r11, [rsp + 0x6b0]
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
mov qword [rax], r13
mov qword [rax + 8], r13
lea rax, [rax + 0x10]
sub r14, 1
jne 0x140019e10
movdqa xmm0, xmmword [rbp + 0x380]
xorps xmm0, xmmword [rbp + 0x3c0]
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmm1, xmmword [rbp + 0x390]
xorps xmm1, xmmword [rbp + 0x3d0]
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmmword [rbp - 0x80], xmm4
movdqa xmmword [rbp - 0x70], xmm5
lea rax, [rbp + 0x250]
lea rcx, [rsp + 0x60]
mov rdx, rsi
jmp 0x140019d20
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movabs rax, 0x1f8536d003455f2f
mov qword [rbp + 0x380], rax
movabs rax, 0x76770cf7e62f6c67
mov qword [rbp + 0x388], rax
movabs rax, 0x73e118bc6f212b41
mov qword [rbp + 0x3a0], rax
movabs rax, 0x76770cf7e62f6c0b
mov qword [rbp + 0x3a8], rax
xorps xmm2, xmm2
lea rax, [rbp + 0x70]
nop word [rax + rax]
mov qword [rax], r13
mov qword [rax + 8], r13
lea rax, [rax + 0x10]
sub rsi, 1
jne 0x140019ec0
movdqa xmm0, xmmword [rbp + 0x380]
xorps xmm0, xmmword [rbp + 0x3a0]
movdqa xmmword [rbp + 0x70], xmm0
movdqa xmmword [rbp + 0x80], xmm2
lea rdx, [rsp + 0x60]
lea rax, [rbp + 0x70]
movups xmm0, xmmword [rax]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rdx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rdx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rdx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rdx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rdx + 0x60], xmm0
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rdx + 0x70], xmm1
movups xmm0, xmmword [rax + 0x80]
movups xmmword [rdx + 0x80], xmm0
movups xmm1, xmmword [rax + 0x90]
movups xmmword [rdx + 0x90], xmm1
lea rcx, [rsp + 0x60]
call qword [sym.imp.kernel32.dll_GetModuleHandleA]
lea rdx, [rbp + 0x250]
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
mov qword [0x1401bcdd0], rax
lea rcx, [0x1401bcdd8]
call fcn.1400f32d8
jmp 0x140019bad
lea rcx, [0x1401bcdd8]
call fcn.1400f3344
cmp dword [0x1401bcdd8], 0xffffffff
jne 0x140019bad
movabs rax, 0x8d9b05c2b73021c
mov qword [rbp + 0x380], rax
movabs rax, 0x1f0686235ffaf1de
mov qword [rbp + 0x388], rax
movabs rdx, 0x1fffffffe0000000
mov qword [rbp + 0x390], rdx
movabs rcx, 0xe000000020004495
mov qword [rbp + 0x398], rcx
movabs rax, 0x67bdc42943207652
mov qword [rbp + 0x3c0], rax
movabs rax, 0x7263f25026a99fa9
mov qword [rbp + 0x3c8], rax
mov qword [rbp + 0x3d0], rdx
mov qword [rbp + 0x3d8], rcx
xorps xmm4, xmm4
xorps xmm5, xmm5
lea rax, [rsp + 0x60]
jmp 0x140019e10