Function at 0x1400513bc
Capabilities:
Get common file path
Move file

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x230
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], rsi
mov rax, qword [0x1401ea028]
xor rax, rsp
mov qword [rsp + 0x220], rax
mov r13, rdx
mov r12d, ecx
mov dword [rsp + 0x30], 0x973
xor edi, edi
mov qword [rsp + 0x78], rdi
mov qword [r11 - 0x1d8], 0xf
mov byte [rsp + 0x68], dil
mov edx, edi
lea rbx, str.FALSE
lea r8d, [rdi + 1]
test rdx, rdx
je 0x140051460
mov rax, rdx
mov r10, qword [rbx]
sub r10, rdx
movzx ecx, byte [rax]
movzx r9d, byte [rax + r10]
sub ecx, r9d
jne 0x140051447
add rax, r8
test r9d, r9d
jne 0x140051432
test ecx, ecx
js 0x140051460
mov r8, qword [rbx]
lea rcx, str.MisOrdered_keyword_entry:__s___s
call fcn.140002430
mov r8d, 1
mov rdx, qword [rbx]
add rbx, 0x10
lea rax, [0x1401573b0]
cmp rbx, rax
jne 0x140051424
mov esi, 0x1e8
mov ecx, esi
call fcn.14011b490
mov rbx, rax
test rax, rax
je 0x140051f05
add qword [0x1401ee6f8], rsi
mov qword [rsp + 0x38], rax
mov rcx, rax
call fcn.14009e430
mov qword [rbx + 0x1e0], rdi
mov qword [0x1401ee018], rbx
mov word [rbx + 0x50], di
mov ecx, 0x10
call fcn.14011b490
test rax, rax
je 0x140051f05
add qword [0x1401ee6f8], 0x10
mov qword [rsp + 0x38], rax
mov edx, 0xa
lea r8d, [rdx - 5]
mov rcx, rax
call fcn.1400a1544
mov r15, rax
mov qword [rbx + 0x1e0], rax
mov sil, dil
mov r14d, edi
mov eax, 1
movzx ecx, r12w
sub cx, ax
movsx ecx, cx
cmp r14d, ecx
jge 0x1400515a1
movsxd rax, r14d
mov rdi, qword [r13 + rax*8 + 8]
mov al, byte [rdi]
sub al, 0x2d
test al, 0xfd
je 0x14005152f
cmp byte [rdi], 0x40
jne 0x14005155d
mov rdx, r15
mov rcx, rdi
call fcn.140055f44
or sil, al
jmp 0x140051594
lea rcx, [rdi + 1]
or r8, 0xffffffffffffffff
inc r8
cmp byte [rcx + r8], 0
jne 0x140051537
lea rdx, str.nologo
call fcn.140112d20
movzx esi, sil
test eax, eax
mov eax, 1
cmove esi, eax
jmp 0x140051562
mov eax, 1
or rcx, 0xffffffffffffffff
inc rcx
cmp byte [rdi + rcx], 0
jne 0x140051566
add rcx, rax
call fcn.140131404
mov rdx, rax
mov rcx, rax
sub rcx, rdi
mov al, byte [rdi]
mov byte [rdi + rcx], al
inc rdi
test al, al
jne 0x140051580
mov rcx, r15
call fcn.1400a15a4
mov eax, 1
add r14d, eax
jmp 0x1400514f7
xor r12d, r12d
test sil, sil
sete al
mov byte [rbx + 0x30], al
mov rax, qword [rbx + 0x1e0]
movzx ecx, word [rax]
mov word [rbx + 0x52], cx
lea rsi, [rbx + 0x9c]
lea r15d, [r12 + 0x20]
cmp byte [rsi], r12b
jne 0x1400515f0
mov dword [rsp + 0x28], 0xe5
mov qword [rsp + 0x20], r12
lea r9d, [r12 + 0xa]
lea r8, str._d._02d._04d
mov edx, r15d
mov rcx, rsi
call fcn.1400027c0
lea rdi, [rbx + 0x7c]
cmp byte [rdi], r12b
jne 0x140051643
lea rcx, [rsp + 0x38]
call fcn.140112e64
lea rcx, [rsp + 0x38]
call fcn.140112ed8
mov rdx, r15
sub rax, rdi
lea rcx, [rdx + 0x7fffffde]
test rcx, rcx
je 0x140051635
mov cl, byte [rax + rdi]
test cl, cl
je 0x140051635
mov byte [rdi], cl
mov ecx, 1
add rdi, rcx
sub rdx, rcx
jne 0x140051613
lea rax, [rdi - 1]
test rdx, rdx
cmovne rax, rdi
mov byte [rax], r12b
cmp byte [rbx + 0x30], r12b
je 0x14005168c
mov edi, 2
mov ecx, edi
call fcn.140109858
mov r8, rsi
lea rdx, str.Microsoft__R__32b_64b_MIDLRT_Compiler_Engine_Version__s___n
mov rcx, rax
call fcn.14002d9a8
mov ecx, edi
call fcn.140109858
lea rdx, str.Copyright__c__Microsoft_Corporation._All_rights_reserved._n
mov rcx, rax
call fcn.14002d9a8
mov ecx, edi
call fcn.140109858
mov rcx, rax
call fcn.140109c64
mov rcx, rbx
call fcn.140052788
mov edi, eax
mov dword [rsp + 0x30], eax
test eax, eax
jne 0x1400517a3
cmp byte [0x1401ef788], r12b
jne 0x1400517a3
test dword [rbx + 0xc], 0x8000000
je 0x140051721
cmp word [rbx + 0x32], 3
jne 0x140051721
xor edx, edx
lea r9, str._midl_header_and__ns_prefix_optional
xor ecx, ecx
mov r8d, 0x402
call fcn.1400a1124
nop
mov rdx, qword [rsp + 0x80]
cmp rdx, 0x10
jb 0x140051717
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
mov esi, 0x1000
cmp rdx, rsi
jb 0x140051712
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f21
call fcn.1401313f8
mov eax, 0x400
jmp 0x140051ed7
test dword [rbx + 0xc], 0x40000000
je 0x140051795
test dword [rbx + 0xc], 0x100000
jne 0x140051795
xor edx, edx
lea r9, str._fastabi_requires__nomidl
xor ecx, ecx
mov r8d, 0x402
call fcn.1400a1124
nop
mov rdx, qword [rsp + 0x80]
cmp rdx, 0x10
jb 0x14005178b
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
mov esi, 0x1000
cmp rdx, rsi
jb 0x140051786
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f21
call fcn.1401313f8
mov eax, 0x400
jmp 0x140051ed7
test dword [rbx + 4], 0x800000
je 0x1400517ec
call fcn.1400558d4
mov esi, 0x1000
mov rdx, qword [rsp + 0x80]
cmp rdx, 0x10
jb 0x140051ecf
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, rsi
jb 0x140051ec9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f21
jmp 0x140051ec9
mov rcx, r15
call fcn.14011b490
test rax, rax
je 0x140051f05
add qword [0x1401ee6f8], r15
mov rcx, rax
call fcn.140051f9c
mov qword [0x1401ee028], rax
lea rdx, [rsp + 0x68]
call fcn.14005206c
mov edi, eax
mov dword [rsp + 0x30], eax
mov al, byte [0x1401ef788]
test edi, edi
jne 0x14005184e
test al, al
je 0x14005184e
xor edx, edx
xor r9d, r9d
mov edi, 0x400
mov r8d, edi
xor ecx, ecx
call fcn.1400a1124
mov dword [rsp + 0x30], edi
jmp 0x1400517a3
test dword [rbx + 0xc], 0x100000
jne 0x140051c8b
test edi, edi
jne 0x140051c8b
test al, al
jne 0x140051c8b
mov rax, qword [0x1401ee028]
cmp byte [rax + 0x1a], r12b
je 0x140051882
cmp byte [rax + 0x1c], r12b
je 0x140051c8b
mov qword [rsp + 0x58], r12
mov r13d, 0xf
mov qword [rsp + 0x60], r13
mov byte [rsp + 0x48], r12b
lea rcx, [rsp + 0x88]
call fcn.1400a1f84
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.1400292dc
mov rdx, qword [rsp + 0xa0]
mov esi, 0x1000
cmp rdx, 0x10
jb 0x1400518f5
inc rdx
mov rcx, qword [rsp + 0x88]
mov rax, rcx
cmp rdx, rsi
jb 0x1400518f0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f27
call fcn.1401313f8
mov rdx, qword [rsp + 0x58]
test rdx, rdx
jne 0x1400519a9
mov ebx, 0x3f8
mov dword [rsp + 0x30], ebx
lea r9, [0x14016e692]
mov r8d, ebx
xor ecx, ecx
call fcn.1400a1124
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140051957
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rsi
jb 0x140051952
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f33
call fcn.1401313f8
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
mov byte [rsp + 0x48], r12b
mov rdx, qword [rsp + 0x80]
cmp rdx, 0x10
jb 0x1400519a2
inc rdx
mov rcx, qword [rsp + 0x68]
mov r8, rcx
cmp rdx, rsi
jb 0x14005199d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub r8, rcx
add r8, 0xfffffffffffffff8
cmp r8, 0x1f
ja 0x140051f2d
call fcn.1401313f8
mov eax, ebx
jmp 0x140051ed7
lea rcx, [rsp + 0x48]
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x60]
cmp r14, 0x10
cmovae rcx, rdi
mov qword [rsp + 0x20], 4
lea r9, [0x14018b2ec]
xor r8d, r8d
call fcn.14004a160
test rax, rax
jne 0x140051a03
lea r9, [rsp + 0x48]
cmp r14, 0x10
cmovae r9, rdi
xor edx, edx
xor ecx, ecx
mov r8d, 0x401
call fcn.1400a1124
mov r14, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x48]
lea rcx, [rsp + 0x48]
cmp r14, 0x10
cmovae rcx, rdi
lea r9, [rsp + 0x110]
xor r8d, r8d
lea rdx, [0x14018b2f4]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameA]
nop dword [rax + rax]
test eax, eax
jne 0x140051ae8
mov ebx, 0x3f8
mov dword [rsp + 0x30], ebx
lea r9, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae r9, qword [rsp + 0x48]
xor edx, edx
mov r8d, ebx
xor ecx, ecx
call fcn.1400a1124
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140051a96
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rsi
jb 0x140051a91
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f33
call fcn.1401313f8
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
mov byte [rsp + 0x48], r12b
mov rdx, qword [rsp + 0x80]
cmp rdx, 0x10
jb 0x140051ae1
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, rsi
jb 0x140051adc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f2d
call fcn.1401313f8
mov eax, ebx
jmp 0x140051ed7
lea rdi, [rsp + 0x68]
cmp qword [rsp + 0x80], 0x10
cmovae rdi, qword [rsp + 0x68]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0xb0]
call fcn.1400a0958
nop
mov r8, rdi
lea rdx, [rsp + 0xb0]
mov rcx, rbx
call fcn.140052b84
xor ecx, ecx
call fcn.140109c64
nop
lea rcx, [rsp + 0xb0]
call fcn.1400a08d8
test dword [rbx + 4], 0x100
je 0x140051bf8
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rdx, qword [rsp + 0x48]
lea r8, [rsp + 0x110]
lea rcx, str._ndebugline:__s__s_n
call fcn.140002430
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140051ba6
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rsi
jb 0x140051ba1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f33
call fcn.1401313f8
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
mov byte [rsp + 0x48], r12b
mov rdx, qword [rsp + 0x80]
cmp rdx, 0x10
jb 0x140051bf1
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, rsi
jb 0x140051bec
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f2d
call fcn.1401313f8
xor eax, eax
jmp 0x140051ed7
mov rax, qword [rbx + 0x1b8]
lea rdx, [rsp + 0x110]
mov rcx, qword [rax]
call fcn.140056284
mov edi, eax
mov dword [rsp + 0x30], eax
cmp eax, 0x95f
je 0x140051c41
cmp eax, 0x973
je 0x140051c41
mov rcx, qword [0x1401ee018]
test dword [rcx + 4], 0x200000
jne 0x140051c41
lea rcx, [rsp + 0x110]
call fcn.140111700
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140051c7a
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rsi
jb 0x140051c75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f33
call fcn.1401313f8
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
mov byte [rsp + 0x48], r12b
jmp 0x140051c90
mov esi, 0x1000
mov rax, qword [0x1401ee018]
test dword [rax + 4], 0x200000
jne 0x140051d3f
mov r14, qword [0x1401eb8a8]
test r14, r14
je 0x140051cf1
mov rbx, qword [r14]
jmp 0x140051cd1
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140051cc2
mov rcx, qword [rbx]
call fcn.140111700
add rbx, r15
mov r14, qword [0x1401eb8a8]
cmp rbx, qword [r14 + 8]
jne 0x140051cb5
test r14, r14
je 0x140051cf1
mov rcx, r14
call fcn.1400630b0
mov edx, 0x18
mov rcx, r14
call fcn.1401313f8
mov rax, qword [0x1401ee028]
cmp byte [rax + 0x1a], r12b
je 0x140051ea9
mov rax, qword [0x1401ee018]
test dword [rax + 0xc], 0x200000
jne 0x140051ea9
cmp qword [rsp + 0x78], r12
je 0x140051ea9
lea rcx, [rsp + 0x68]
cmp qword [rsp + 0x80], 0x10
cmovae rcx, qword [rsp + 0x68]
call fcn.140111700
jmp 0x140051ea9
test edi, edi
jne 0x140051ea9
call fcn.140092838
mov rax, qword [0x1401ee028]
cmp byte [rax + 0x1a], r12b
je 0x1400517a8
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x88]
call fcn.140029474
nop
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x48]
call fcn.14009270c
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x88]
cmp qword [rsp + 0xa0], 0x10
cmovae rcx, qword [rsp + 0x88]
call fcn.1401119d4
mov ebx, eax
test eax, eax
je 0x140051e1a
call fcn.140111d38
cmp dword [rax], 0x11
jne 0x140051e0a
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rcx, qword [rsp + 0x48]
call fcn.140111700
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 0x10
cmovae rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x88]
cmp qword [rsp + 0xa0], 0x10
cmovae rcx, qword [rsp + 0x88]
call fcn.1401119d4
mov ebx, eax
test ebx, ebx
je 0x140051e1a
lea rcx, str.Error_renaming_intermediate_file
call fcn.14010fe60
mov rdx, qword [rsp + 0x60]
cmp rdx, 0x10
jb 0x140051e53
inc rdx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, rsi
jb 0x140051e4e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f39
call fcn.1401313f8
movdqa xmm0, xmmword [0x1401ad6b0]
movdqu xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x48], r12b
mov rdx, qword [rsp + 0xa0]
cmp rdx, 0x10
jb 0x1400517a8
inc rdx
mov rcx, qword [rsp + 0x88]
mov rax, rcx
cmp rdx, rsi
jb 0x140051ea4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140051f3f
call fcn.1401313f8
mov r8d, 0x95e
cmp edi, r8d
jne 0x1400517a8
xor edx, edx
xor r9d, r9d
xor ecx, ecx
call fcn.1400a1124
jmp 0x1400517a8
call fcn.1401313f8
nop
jmp 0x140051ed5
mov eax, edi
mov rcx, qword [rsp + 0x220]
xor rcx, rsp
call fcn.1401313d0
lea r11, [rsp + 0x230]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
xor edx, edx
xor r9d, r9d
mov ebx, 0x7d5
mov r8d, ebx
xor ecx, ecx
call fcn.1400a1124
mov ecx, ebx
call fcn.14011a578
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
nop
call fcn.14010f9a4
int3