Function at 0x140030370
Capabilities:
Get common file path
Set file attributes

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
sub rsp, 0x610
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x140090100]
xor rax, rsp
mov qword [rbp + 0x5b0], rax
xor r13d, r13d
lea rdx, [rbp + 0x3a0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
movabs rax, 0x2784549fb712231a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x10], rax
movabs rax, 0x44be84307b61ed13
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x18], rax
movabs rax, 0xa83bf489d8eec53f
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs r15, 0xe0ee54dcd1454548
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
movabs rsi, 0x27f454ebb7672375
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0x320], rax
movabs r12, 0x44ca841e7b15ed66
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x328], rax
movabs r14, 0xa83bf489d89ac547
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x330], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x338], rax
vmovdqu ymm0, ymmword [rbp + 0x10]
vpxor ymm1, ymm0, ymmword [rbp + 0x320]
vmovdqu ymmword [rbp + 0x10], ymm1
lea rdx, [rbp + 0x3a0]
lea rcx, [rbp + 0xb0]
vzeroupper
call fcn.140037500
mov rdi, rax
lea rax, [rbp + 0x10]
mov rbx, 0xffffffffffffffff
mov rdx, rbx
nop dword [rax]
inc rdx
cmp word [rax + rdx*2], 0
jne 0x1400304b0
mov rcx, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x14003050d
lea r14, [rcx + rdx]
mov qword [rdi + 0x10], r14
mov rsi, rdi
cmp r8, 7
jbe 0x1400304e1
mov rsi, qword [rdi]
lea rcx, [rsi + rcx*2]
lea r8, [rdx + rdx]
lea rdx, [rbp + 0x10]
call fcn.14006f480
mov word [rsi + r14*2], r13w
movabs rsi, 0x27f454ebb7672375
movabs r14, 0xa83bf489d89ac547
jmp 0x140030524
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0x10]
xor r8d, r8d
mov rcx, rdi
call fcn.1400169c0
mov rdi, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x240], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x250], xmm1
movups xmm0, xmmword [rdi]
movups xmmword [rbp + 0x240], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbp + 0x250], xmm1
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], 7
mov word [rdi], r13w
mov rdx, qword [rbp + 0xc8]
cmp rdx, 7
jbe 0x1400305a4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003059f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003109e
call fcn.140045d00
movdqa xmm0, xmmword [0x1400836f0]
movdqu xmmword [rbp + 0xc0], xmm0
mov word [rbp + 0xb0], r13w
lea rdx, [rbp + 0x240]
cmp qword [rbp + 0x258], 7
cmova rdx, qword [rbp + 0x240]
mov rax, qword [rbp + 0x250]
lea r8, [rdx + rax*2]
lea rdx, [rbp + 0x240]
cmova rdx, qword [rbp + 0x240]
lea rcx, [rbp + 0xd0]
call fcn.140037770
mov r8, rax
movabs rax, 0x429c2799d2104c05
mov qword [rbp], rax
mov rcx, qword [rbp]
mov qword [rbp + 0x40], rcx
movabs rax, 0x69eae1661e3b810a
mov qword [rbp], rax
mov rcx, qword [rbp]
mov qword [rbp + 0x48], rcx
movabs rax, 0x885f9ae8b5f7aa04
mov qword [rbp], rax
mov rcx, qword [rbp]
mov qword [rbp + 0x50], rcx
movabs rax, 0xa39e19f1a520026a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x58], rax
movabs rax, 0x5db90873bfeac326
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x60], rax
movabs rax, 0xdaf154922bf2f7e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x68], rax
movabs rax, 0x7d87ea66dd7a853d
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x70], rax
movabs rax, 0x1bc2da6e6ee38b0e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x78], rax
movabs rax, 0x86170c972ba17a10
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x80], rax
movabs rax, 0x4ff63413e7f633c0
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x88], rax
movabs rax, 0x6d0b31a13537efd1
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x90], rax
movabs rcx, 0xe8aa1e941932ca90
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x98], rax
mov qword [rbp], rsi
mov rax, qword [rbp]
mov qword [rbp + 0x340], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x348], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x350], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x358], rax
movabs rax, 0xecb6d07ca9aae49
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x360], rax
movabs rax, 0x2dd3353a57cb4e0a
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x368], rax
movabs rax, 0x5df59e15b914ec5b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x370], rax
movabs rax, 0x69adb3180f8bee4c
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x378], rax
movabs rax, 0xc36563e342cf155d
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x380], rax
movabs rax, 0x6fd450768b9452ae
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x388], rax
movabs rax, 0x6d0b31a13537cfef
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x390], rax
mov qword [rbp], rcx
mov rax, qword [rbp]
mov qword [rbp + 0x398], rax
vmovdqu ymm0, ymmword [rbp + 0x40]
vpxor ymm1, ymm0, ymmword [rbp + 0x340]
vmovdqa ymmword [rbp + 0x40], ymm1
vmovdqu ymm0, ymmword [rbp + 0x60]
vpxor ymm1, ymm0, ymmword [rbp + 0x360]
vmovdqa ymmword [rbp + 0x60], ymm1
vmovdqu ymm0, ymmword [rbp + 0x80]
vpxor ymm1, ymm0, ymmword [rbp + 0x380]
vmovdqa ymmword [rbp + 0x80], ymm1
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x2a0]
vzeroupper
call fcn.140037640
nop
mov rdx, qword [rbp + 0xe8]
cmp rdx, 0xf
jbe 0x14003089b
inc rdx
mov rcx, qword [rbp + 0xd0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140030896
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400310a4
call fcn.140045d00
movdqa xmm0, xmmword [0x140083700]
movdqu xmmword [rbp + 0xe0], xmm0
mov byte [rbp + 0xd0], 0
lea rcx, [rbp + 0x2a0]
cmp qword [rbp + 0x2b8], 0xf
cmova rcx, qword [rbp + 0x2a0]
call fcn.1400544e8
lea rcx, [rbp + 0x240]
cmp qword [rbp + 0x258], 7
cmova rcx, qword [rbp + 0x240]
mov esi, 2
mov edx, esi
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor edx, edx
mov r8d, pe_nt_image_headers64
lea rcx, [rbp + 0x130]
call fcn.14006fca0
lea rdx, [rbp + 0x240]
cmp qword [rbp + 0x258], 7
cmova rdx, qword [rbp + 0x240]
mov rax, qword [rbp + 0x250]
lea r8, [rdx + rax*2]
lea rdx, [rbp + 0x240]
cmova rdx, qword [rbp + 0x240]
lea rcx, [rbp + 0xf0]
call fcn.140037770
nop
cmp qword [rax + 0x18], 0xf
jbe 0x14003094e
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp + 0x130]
call fcn.140013970
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x130], rax
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x12c], edx
mov rdx, qword [rbp + 0x108]
cmp rdx, 0xf
jbe 0x1400309d0
inc rdx
mov rcx, qword [rbp + 0xf0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400309cb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400310aa
call fcn.140045d00
movdqa xmm0, xmmword [0x140083700]
movdqu xmmword [rbp + 0x100], xmm0
mov byte [rbp + 0xf0], 0
mov rcx, qword [rbp + 0x130]
movsxd rax, dword [rcx + 4]
test byte [rbp + rax + 0x140], 6
je 0x140030b6f
movabs rax, 0x48d42084d9094236
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x2c0], rax
movabs rax, 0x34bef1715b7b8816
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x2c8], rax
movabs rax, 0x865e98e0bebab132
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x2d0], rax
movabs rax, 0xe0ee54dcd1454542
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x2d8], rax
movabs rax, 0x27f454ebb7672375
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x2e0], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x2e8], rax
mov qword [rbp], r14
mov rax, qword [rbp]
mov qword [rbp + 0x2f0], rax
mov qword [rbp], r15
mov rax, qword [rbp]
mov qword [rbp + 0x2f8], rax
vmovdqu ymm0, ymmword [rbp + 0x2c0]
vpxor ymm1, ymm0, ymmword [rbp + 0x2e0]
vmovdqa ymmword [rbp + 0x2c0], ymm1
lea rdx, [rbp + 0x2c0]
lea rcx, [0x140091f20]
vzeroupper
call fcn.140015640
lea rdx, [rbp + 0x240]
cmp qword [rbp + 0x258], 7
cmova rdx, qword [rbp + 0x240]
mov rax, qword [rbp + 0x250]
lea r8, [rdx + rax*2]
lea rdx, [rbp + 0x240]
cmova rdx, qword [rbp + 0x240]
lea rcx, [rbp + 0x2c0]
call fcn.140037770
cmp qword [rax + 0x18], 0xf
jbe 0x140030b1f
mov rax, qword [rax]
mov rcx, rax
call fcn.14005686c
mov rdx, qword [rbp + 0x2d8]
cmp rdx, 0xf
jbe 0x140030b68
inc rdx
mov rcx, qword [rbp + 0x2c0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140030b63
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400310b0
call fcn.140045d00
xor bl, bl
jmp 0x140030f43
xorps xmm0, xmm0
movups xmmword [rbp + 0x260], xmm0
mov qword [rbp + 0x270], r13
mov qword [rbp + 0x278], 0xf
mov byte [rbp + 0x260], 0
movsxd rax, dword [rcx + 4]
mov rcx, qword [rbp + rax + 0x170]
mov rcx, qword [rcx + 8]
mov qword [rbp + 0xa8], rcx
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbp + 0xa0]
call fcn.140014f70
mov rcx, qword [rax]
mov r8, qword [rcx + 0x40]
mov dl, 0xa
mov rcx, rax
call r8
movzx edi, al
mov rcx, qword [rbp + 0xa8]
test rcx, rcx
je 0x140030bf6
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x140030bf6
mov rcx, qword [rax]
mov r8, qword [rcx]
mov edx, 1
mov rcx, rax
call r8
movzx r8d, dil
lea rdx, [rbp + 0x260]
lea rcx, [rbp + 0x130]
call fcn.1400378c0
lea rcx, [rbp + 0x140]
call fcn.140013870
test rax, rax
jne 0x140030c5a
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
mov eax, 6
cmp qword [rbp + rcx + 0x178], 0
cmovne eax, esi
or eax, dword [rbp + rcx + 0x140]
and eax, 0x17
mov dword [rbp + rcx + 0x140], eax
mov edx, dword [rbp + rcx + 0x144]
and edx, eax
jne 0x1400310b6
lea rdx, [rbp + 0x240]
cmp qword [rbp + 0x258], 7
cmova rdx, qword [rbp + 0x240]
mov rax, qword [rbp + 0x250]
lea r8, [rdx + rax*2]
lea rdx, [rbp + 0x240]
cmova rdx, qword [rbp + 0x240]
lea rcx, [rbp + 0x110]
call fcn.140037770
cmp qword [rax + 0x18], 0xf
jbe 0x140030ca1
mov rax, qword [rax]
mov rcx, rax
call fcn.14005686c
mov rdx, qword [rbp + 0x128]
cmp rdx, 0xf
jbe 0x140030cea
inc rdx
mov rcx, qword [rbp + 0x110]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140030ce5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140031110
call fcn.140045d00
movdqa xmm0, xmmword [0x140083700]
movdqu xmmword [rbp + 0x120], xmm0
mov byte [rbp + 0x110], 0
lea r14, [rbp + 0x260]
mov rdi, qword [rbp + 0x260]
mov r15, qword [rbp + 0x278]
cmp r15, 0xf
cmova r14, rdi
mov rsi, qword [rbp + 0x270]
cmp rsi, 1
jb 0x140030d80
lea r12, [rsi + r14]
mov r8, rsi
mov edx, 0x3a
mov rcx, r14
call fcn.14006fbe0
test rax, rax
je 0x140030d76
cmp byte [rax], 0x3a
jne 0x140030d4e
mov ecx, r13d
jmp 0x140030d53
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x140030e96
inc rax
mov r8, r12
sub r8, rax
mov edx, 0x3a
mov rcx, rax
call fcn.14006fbe0
test rax, rax
jne 0x140030d44
movabs r12, 0x44ca841e7b15ed66
mov rax, rbx
cmp rax, 0xffffffffffffffff
je 0x140030ef1
lea rcx, [rax + 2]
xorps xmm0, xmm0
movups xmmword [rbp + 0x280], xmm0
mov qword [rbp + 0x290], r13
mov qword [rbp + 0x298], r13
cmp rsi, rcx
jb 0x140031116
sub rsi, rcx
mov r8, rbx
cmp rsi, rbx
cmovb r8, rsi
lea rdx, [rbp + 0x260]
cmp r15, 0xf
cmova rdx, rdi
add rdx, rcx
lea rcx, [rbp + 0x280]
call fcn.140016e70
movabs rax, 0x27f454ebd2125121
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x2e0], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x2e8], rax
movabs rax, 0x27f454ebb7672375
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x2c0], rax
mov qword [rbp], r12
mov rax, qword [rbp]
mov qword [rbp + 0x2c8], rax
movdqa xmm0, xmmword [rbp + 0x2e0]
xorps xmm0, xmmword [rbp + 0x2c0]
movdqa xmmword [rbp + 0x2e0], xmm0
lea rax, [rbp + 0x2e0]
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], 0
jne 0x140030e50
lea rcx, [rbp + 0x280]
mov rdi, qword [rbp + 0x280]
mov rsi, qword [rbp + 0x298]
cmp rsi, 0xf
cmova rcx, rdi
mov r8, qword [rbp + 0x290]
cmp r8, rbx
jne 0x140030ea8
lea rdx, [rbp + 0x2e0]
call fcn.14006fb00
test eax, eax
jne 0x140030ea8
mov bl, 1
jmp 0x140030eaa
sub rax, r14
movabs r12, 0x44ca841e7b15ed66
jmp 0x140030d83
xor bl, bl
cmp rsi, 0xf
jbe 0x140030ee1
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140030ed9
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14003111c
mov rcx, rdi
call fcn.140045d00
mov r15, qword [rbp + 0x278]
mov rdi, qword [rbp + 0x260]
jmp 0x140030ef3
xor bl, bl
cmp r15, 0xf
jbe 0x140030f2a
lea rdx, [r15 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140030f22
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140031122
mov rcx, rdi
call fcn.140045d00
mov qword [rbp + 0x270], r13
mov qword [rbp + 0x278], 0xf
mov byte [rbp + 0x260], 0
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x130], rax
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x12c], edx
lea rcx, [rbp + 0x140]
call fcn.140010f10
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x130], rax
mov rax, qword [rbp + 0x130]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx + 0x12c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x1e0], rax
lea rcx, [rbp + 0x1e0]
call fcn.1400442a8
nop
mov rdx, qword [rbp + 0x2b8]
cmp rdx, 0xf
jbe 0x14003100c
inc rdx
mov rcx, qword [rbp + 0x2a0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140031007
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140031128
call fcn.140045d00
movdqa xmm0, xmmword [0x140083700]
movdqu xmmword [rbp + 0x2b0], xmm0
mov byte [rbp + 0x2a0], 0
mov rdx, qword [rbp + 0x258]
cmp rdx, 7
jbe 0x140031065
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x240]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140031060
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140031098
call fcn.140045d00
movzx eax, bl
mov rcx, qword [rbp + 0x5b0]
xor rcx, rsp
call fcn.140045ce0
lea r11, [rsp + 0x610]
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.140055d34
nop
call fcn.140055d34
nop
call fcn.140055d34
nop
call fcn.140055d34
int3
call fcn.140055d34
nop
test dl, 4
je 0x1400310c4
lea rbx, str.ios_base::badbit_set
jmp 0x1400310d9
test dl, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp + 0x2c0]
call fcn.1400063b0
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x2e0]
call fcn.140006ed0
lea rdx, [0x14008d9e8]
lea rcx, [rbp + 0x2e0]
call fcn.140048254
int3
call fcn.140055d34
int3
call fcn.140014ba0
int3
call fcn.140055d34
nop
call fcn.140055d34
nop
call fcn.140055d34
int3