Function at 0x1400580ac
Capabilities:
Get common file path
Query environment variable

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x798]
sub rsp, 0x870
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x1401ea028]
xor rax, rsp
mov qword [rbp + 0x760], rax
mov r14, r9
mov rdi, r8
mov rsi, rdx
mov r12, qword [rbp + 0x7c8]
mov qword [rsp + 0x38], r12
xor ebx, ebx
mov rax, qword [0x1401ee028]
mov rcx, qword [rax + 8]
mov rax, qword [rcx + 0x1a8]
mov r9, qword [rax]
mov qword [rbp + 0x48], r9
mov dword [rsp + 0x30], ebx
mov r13d, ebx
xor edx, edx
mov r8d, 0x3e8
lea rcx, [rbp + 0x370]
call fcn.140133710
mov r15d, 0x304
mov edx, r15d
lea rcx, [rbp + 0x60]
lea r8, [0x14016ee14]
lea rax, [rbp + 0x60]
sub r8, rax
lea rax, [rdx + 0x7ffffcfa]
test rax, rax
je 0x140058171
mov al, byte [r8 + rcx]
test al, al
je 0x140058171
mov byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140058152
lea rax, [rcx - 1]
test rdx, rdx
cmovne rax, rcx
mov byte [rax], bl
mov rax, rdx
neg rax
sbb eax, eax
not eax
and eax, 0x8007007a
test rdx, rdx
je 0x140058a37
mov r8, rsi
mov rdx, r15
lea rcx, [rbp + 0x60]
call fcn.1400026f8
test eax, eax
jne 0x140058a37
mov r8, rdi
mov rdx, r15
lea rcx, [rbp + 0x60]
call fcn.1400026f8
test eax, eax
jne 0x140058a37
cmp byte [rdi], bl
je 0x1400581f6
or rax, 0xffffffffffffffff
inc rax
cmp byte [rdi + rax], bl
jne 0x1400581cc
cmp byte [rax + rdi - 1], 0x5c
je 0x1400581f6
lea r8, [0x14016eff0]
mov rdx, r15
lea rcx, [rbp + 0x60]
call fcn.1400026f8
test eax, eax
jne 0x140058a37
mov r8, r14
mov rdx, r15
lea rcx, [rbp + 0x60]
call fcn.1400026f8
test eax, eax
jne 0x140058a37
mov r8, qword [rbp + 0x7c0]
mov rdx, r15
lea rcx, [rbp + 0x60]
call fcn.1400026f8
test eax, eax
jne 0x140058a37
lea r8, [0x14016ee14]
mov rdx, r15
lea rcx, [rbp + 0x60]
call fcn.1400026f8
test eax, eax
jne 0x140058a37
mov rcx, qword [0x1401ee018]
mov rax, qword [rcx + 0x1b0]
mov rsi, qword [rax]
or rdi, 0xffffffffffffffff
inc rdi
cmp byte [rsi + rdi], bl
jne 0x140058258
movzx eax, word [rcx + 0x1e]
mov ecx, 0x100
and ax, cx
neg ax
sbb rax, rax
and eax, 0x1a
add rax, 0x64
add rdi, rax
mov rcx, rdi
call fcn.140131404
mov r15, rax
mov rax, qword [0x1401ee018]
mov r14d, 0x3e8
mov rdx, rdi
mov rcx, r15
mov r9d, r14d
test dword [rax + 8], 0x20000000
je 0x1400584e5
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
lea r8, str._D__midl_d__D__midlrt_d__D__MKTYPLIB___d
call fcn.1400027c0
test eax, eax
jne 0x140058a37
mov r8, rsi
mov rdx, rdi
mov rcx, r15
call fcn.1400026f8
test eax, eax
jne 0x140058a37
mov rax, qword [0x1401ee018]
mov ecx, 0x100
test word [rax + 0x1e], cx
je 0x14005830a
lea r8, str.__wowa64__hybrid:x86arm64
mov rdx, rdi
mov rcx, r15
call fcn.1400026f8
test eax, eax
jne 0x140058a37
mov r8d, r14d
lea rdx, [rbp + 0x370]
lea rcx, str.TEMP
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
nop dword [rax + rax]
mov ecx, eax
dec eax
mov edi, 0x3e7
cmp eax, edi
jbe 0x14005835d
mov r8d, r14d
lea rdx, [rbp + 0x370]
lea rcx, [0x14018dc68]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
nop dword [rax + rax]
mov ecx, eax
dec eax
cmp eax, edi
ja 0x1400584fb
mov eax, ecx
cmp byte [rbp + rax + 0x370], 0x5c
je 0x140058383
inc ecx
cmp ecx, r14d
ja 0x1400584fb
mov byte [rbp + rax + 0x370], 0x5c
mov byte [rbp + rcx + 0x370], bl
mov rcx, r14
call fcn.140131404
mov qword [r12], rax
mov r9, rax
xor r8d, r8d
lea rdx, str.RTPP
lea rcx, [rbp + 0x370]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameA]
nop dword [rax + rax]
test eax, eax
jne 0x14005850c
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
lea rcx, [rbp + 0x60]
call fcn.1400296ac
nop
mov edx, ebx
lea rcx, [rsp + 0x48]
call fcn.1400a1340
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400583ea
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp + 0x70]
call fcn.14004a6d8
nop
mov edi, 0x1000
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140058435
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rdi
jb 0x140058430
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058a6e
call fcn.1401313f8
lea rdx, str._Temp_Path:
lea rcx, [rbp + 0x70]
call fcn.14002c780
mov rcx, rax
lea rdx, [rbp + 0x370]
call fcn.14002c780
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x60]
call fcn.140029510
cmp qword [rax + 0x18], 0x10
jb 0x14005846c
mov rax, qword [rax]
xor edx, edx
mov r9, rax
mov ebx, 0x3f8
mov r8d, ebx
xor ecx, ecx
call fcn.1400a1124
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x1400584ba
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rdi
jb 0x1400584b4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058a74
call fcn.1401313f8
nop
lea rcx, [rbp + 0xf8]
call fcn.1400295c0
lea rax, vtable.std::basic_ios_char__struct_std::char_traits_char__.0
mov qword [rbp + 0xf8], rax
lea rcx, [rbp + 0xf8]
call fcn.140004534
jmp 0x140058a35
mov dword [rsp + 0x20], r14d
lea r8, str._D__midl_d__D__midlrt_d
call fcn.1400027c0
jmp 0x1400582c0
lea r9, [rbp + 0x370]
mov ebx, 0x3f8
jmp 0x140058a29
mov r8d, 0x20
lea rdx, [0x14016f05c]
mov rcx, qword [r12]
call fcn.1401187a8
mov r12, rax
test rax, rax
jne 0x140058627
lea rcx, [rbp + 0x60]
call fcn.1400296ac
nop
lea rcx, [rsp + 0x48]
call fcn.1400a1488
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x140058551
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp + 0x70]
call fcn.14004a6d8
nop
mov edi, 0x1000
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x14005859c
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rdi
jb 0x140058597
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058a7a
call fcn.1401313f8
lea rdx, str.File_name:
lea rcx, [rbp + 0x70]
call fcn.14002c780
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rcx]
mov rcx, rax
call fcn.14002c780
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x60]
call fcn.140029510
cmp qword [rax + 0x18], 0x10
jb 0x1400585d4
mov rax, qword [rax]
xor edx, edx
mov r9, rax
mov ebx, 0x3f8
mov r8d, ebx
xor ecx, ecx
call fcn.1400a1124
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140058622
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rdi
jb 0x14005861c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058a80
call fcn.1401313f8
nop
jmp 0x1400584ba
mov rcx, r12
call fcn.140112ce0
mov edi, eax
or rsi, 0xffffffffffffffff
cmp dword [0x1401ea080], esi
jne 0x140058653
lea ecx, [rsi + 2]
call fcn.14011a00c
mov dword [0x1401ea080], eax
cmp eax, esi
je 0x140058a21
mov edx, 1
mov ecx, edi
call fcn.1401185dc
cmp eax, esi
je 0x140058a21
mov rax, qword [0x1401ee018]
mov r14d, 2
test dword [rax + 4], 0x2000000
je 0x1400586e4
mov dword [rsp + 0x30], 1
lea rdx, [0x14016f05c]
lea rcx, [0x14018b224]
call fcn.1401187b4
mov r13, rax
test rax, rax
jne 0x1400586ac
lea r9, [0x14018b224]
jmp 0x140058502
mov rcx, rax
call fcn.140112ce0
mov edi, eax
mov dword [0x1401ea07c], esi
mov ecx, r14d
call fcn.14011a00c
mov dword [0x1401ea07c], eax
cmp eax, esi
je 0x140058a21
mov edx, r14d
mov ecx, edi
call fcn.1401185dc
cmp eax, esi
je 0x140058a21
movdqa xmm0, xmmword [0x1401ad6b0]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], bl
lea rax, [rbp + 0x60]
mov r8, rsi
inc r8
cmp byte [rax + r8], bl
jne 0x1400586fd
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x48]
call fcn.14002b0fc
nop
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x28]
call fcn.1400a1b80
mov r14, rax
cmp qword [rax + 0x18], 8
jb 0x140058730
mov r14, qword [rax]
movdqa xmm0, xmmword [0x1401ad6b0]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], bl
mov r8, rsi
inc r8
cmp byte [r15 + r8], bl
jne 0x140058743
mov rdx, r15
lea rcx, [rbp - 0x58]
call fcn.14002b0fc
nop
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 8]
call fcn.1400a1b80
mov rsi, rax
cmp qword [rax + 0x18], 8
jb 0x140058773
mov rsi, qword [rax]
movdqa xmm0, xmmword [0x1401ad6b0]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], bl
or r8, 0xffffffffffffffff
mov rax, qword [rbp + 0x48]
inc r8
cmp byte [rax + r8], bl
jne 0x14005878b
mov rdx, rax
lea rcx, [rbp - 0x78]
call fcn.14002b0fc
nop
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x18]
call fcn.1400a1b80
mov rdi, rax
cmp qword [rax + 0x18], 8
jb 0x1400587bb
mov rdi, qword [rax]
movdqa xmm0, xmmword [0x1401ad6b0]
movdqu xmmword [rsp + 0x78], xmm0
mov byte [rsp + 0x68], bl
or r8, 0xffffffffffffffff
mov rax, qword [rbp + 0x48]
inc r8
cmp byte [rax + r8], bl
jne 0x1400587d5
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.14002b0fc
nop
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x38]
call fcn.1400a1b80
cmp qword [rax + 0x18], 8
jb 0x140058804
mov rax, qword [rax]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
mov r9, rsi
mov r8, rdi
mov rdx, rax
xor ecx, ecx
call fcn.14011a21c
mov rsi, rax
lea rcx, [rbp - 0x38]
call fcn.140028ef4
nop
mov edi, 0x1000
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x140058868
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, rdi
jb 0x140058863
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058a86
call fcn.1401313f8
movdqa xmm0, xmmword [0x1401ad6b0]
movdqu xmmword [rsp + 0x78], xmm0
mov byte [rsp + 0x68], bl
lea rcx, [rbp - 0x18]
call fcn.140028ef4
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x1400588bb
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, rdi
jb 0x1400588b6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058a8c
call fcn.1401313f8
movdqa xmm0, xmmword [0x1401ad6b0]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], bl
lea rcx, [rbp + 8]
call fcn.140028ef4
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x14005890c
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, rdi
jb 0x140058907
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058a92
call fcn.1401313f8
movdqa xmm0, xmmword [0x1401ad6b0]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], bl
lea rcx, [rbp + 0x28]
call fcn.140028ef4
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x14005895f
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rdi
jb 0x14005895a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140058a68
call fcn.1401313f8
mov rcx, r15
call fcn.1401313f8
mov rcx, r12
call fcn.140118854
mov edx, 1
mov ecx, dword [0x1401ea080]
call fcn.1401185dc
cmp dword [rsp + 0x30], ebx
je 0x14005899d
mov rcx, r13
call fcn.140118854
mov edx, 2
mov ecx, dword [0x1401ea07c]
call fcn.1401185dc
cmp rsi, 0xffffffffffffffff
jne 0x1400589db
call fcn.140111d38
mov ecx, dword [rax]
cmp ecx, 2
je 0x1400589cd
cmp ecx, 8
je 0x1400589c6
mov ebx, 0x7d5
mov edx, 0x3ec
cmp ecx, 0xc
cmovne ebx, edx
jmp 0x1400589d2
mov ebx, 0x3ee
jmp 0x1400589d2
mov ebx, 0x3ed
mov r9, qword [rbp + 0x48]
mov r8d, ebx
jmp 0x140058a09
test rsi, rsi
je 0x140058a35
mov r9d, esi
lea r8, str.__d_
mov edx, 0xa
lea rcx, [rbp + 0x48]
call fcn.1400027c0
test eax, eax
jne 0x140058a37
mov r8d, 0x3eb
mov ebx, r8d
lea r9, [rbp + 0x48]
xor edx, edx
xor ecx, ecx
call fcn.1400a1124
mov rcx, qword [rsp + 0x38]
mov rcx, qword [rcx]
call fcn.140111700
jmp 0x140058a35
xor r9d, r9d
mov ebx, 0x3fa
mov r8d, ebx
xor edx, edx
xor ecx, ecx
call fcn.1400a1124
mov eax, ebx
mov rcx, qword [rbp + 0x760]
xor rcx, rsp
call fcn.1401313d0
lea r11, [rsp + 0x870]
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.14010f9a4
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
int3
call fcn.14010f9a4
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
int3