Function at 0x14003be20
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x330
mov rax, qword [0x1401297c0]
xor rax, rsp
mov qword [rsp + 0x320], rax
mov dword [rsp + 0x24], 0
mov edx, 0x100
lea rcx, [rsp + 0x120]
call qword [sym.imp.kernel32.dll_GetWindowsDirectoryW]
mov eax, 2
imul rax, rax, 0
lea rcx, [0x1400c0150]
xor edx, edx
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x30], ax
mov eax, 2
imul rax, rax, 1
lea rcx, [0x1400c0150]
mov edx, 1
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x32], ax
mov eax, 2
imul rax, rax, 2
lea rcx, [0x1400c0150]
mov edx, 2
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x34], ax
mov eax, 2
imul rax, rax, 3
lea rcx, [0x1400c0150]
mov edx, 3
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x36], ax
mov eax, 2
imul rax, rax, 4
lea rcx, [0x1400c0150]
mov edx, 4
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x38], ax
mov eax, 2
imul rax, rax, 5
lea rcx, [0x1400c0150]
mov edx, 5
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x3a], ax
mov eax, 2
imul rax, rax, 6
lea rcx, [0x1400c0150]
mov edx, 6
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x3c], ax
mov eax, 2
imul rax, rax, 7
lea rcx, [0x1400c0150]
mov edx, 7
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x3e], ax
mov eax, 2
imul rax, rax, 8
lea rcx, [0x1400c0150]
mov edx, 8
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x40], ax
mov eax, 2
imul rax, rax, 9
lea rcx, [0x1400c0150]
mov edx, 9
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x42], ax
mov eax, 2
imul rax, rax, 0xa
lea rcx, [0x1400c0150]
mov edx, 0xa
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x44], ax
mov eax, 2
imul rax, rax, 0xb
lea rcx, [0x1400c0150]
mov edx, 0xb
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x46], ax
mov eax, 2
imul rax, rax, 0xc
lea rcx, [0x1400c0150]
mov edx, 0xc
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x48], ax
mov eax, 2
imul rax, rax, 0xd
lea rcx, [0x1400c0150]
mov edx, 0xd
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x4a], ax
mov eax, 2
imul rax, rax, 0xe
lea rcx, [0x1400c0150]
mov edx, 0xe
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x4c], ax
mov eax, 2
imul rax, rax, 0xf
lea rcx, [0x1400c0150]
mov edx, 0xf
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x4e], ax
mov eax, 2
imul rax, rax, 0x10
lea rcx, [0x1400c0150]
mov edx, 0x10
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x50], ax
mov eax, 2
imul rax, rax, 0x11
lea rcx, [0x1400c0150]
mov edx, 0x11
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x52], ax
mov eax, 2
imul rax, rax, 0x12
lea rcx, [0x1400c0150]
mov edx, 0x12
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x54], ax
mov eax, 2
imul rax, rax, 0x13
lea rcx, [0x1400c0150]
mov edx, 0x13
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x56], ax
mov eax, 2
imul rax, rax, 0x14
lea rcx, [0x1400c0150]
mov edx, 0x14
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x58], ax
mov eax, 2
imul rax, rax, 0x15
lea rcx, [0x1400c0150]
mov edx, 0x15
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x5a], ax
mov eax, 2
imul rax, rax, 0x16
lea rcx, [0x1400c0150]
mov edx, 0x16
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x5c], ax
mov eax, 2
imul rax, rax, 0x17
lea rcx, [0x1400c0150]
mov edx, 0x17
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x5e], ax
mov eax, 2
imul rax, rax, 0x18
lea rcx, [0x1400c0150]
mov edx, 0x18
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x60], ax
mov eax, 2
imul rax, rax, 0x19
lea rcx, [0x1400c0150]
mov edx, 0x19
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x62], ax
mov eax, 2
imul rax, rax, 0x1a
lea rcx, [0x1400c0150]
mov edx, 0x1a
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x64], ax
mov eax, 2
imul rax, rax, 0x1b
lea rcx, [0x1400c0150]
mov edx, 0x1b
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x66], ax
mov eax, 2
imul rax, rax, 0x1c
lea rcx, [0x1400c0150]
mov edx, 0x1c
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x68], ax
mov eax, 2
imul rax, rax, 0x1d
lea rcx, [0x1400c0150]
mov edx, 0x1d
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x6a], ax
mov eax, 2
imul rax, rax, 0x1e
lea rcx, [0x1400c0150]
mov edx, 0x1e
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x6c], ax
mov eax, 2
imul rax, rax, 0x1f
lea rcx, [0x1400c0150]
mov edx, 0x1f
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x6e], ax
mov eax, 2
imul rax, rax, 0x20
lea rcx, [0x1400c0150]
mov edx, 0x20
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x70], ax
mov eax, 2
imul rax, rax, 0x21
lea rcx, [0x1400c0150]
mov edx, 0x21
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x72], ax
mov eax, 2
imul rax, rax, 0x22
lea rcx, [0x1400c0150]
mov edx, 0x22
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x74], ax
mov eax, 2
imul rax, rax, 0x23
lea rcx, [0x1400c0150]
mov edx, 0x23
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x76], ax
mov eax, 2
imul rax, rax, 0x24
lea rcx, [0x1400c0150]
mov edx, 0x24
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x78], ax
mov eax, 2
imul rax, rax, 0x25
lea rcx, [0x1400c0150]
mov edx, 0x25
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x7a], ax
mov eax, 2
imul rax, rax, 0x26
lea rcx, [0x1400c0150]
mov edx, 0x26
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x7c], ax
mov eax, 2
imul rax, rax, 0x27
lea rcx, [0x1400c0150]
mov edx, 0x27
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x7e], ax
mov eax, 2
imul rax, rax, 0x28
lea rcx, [0x1400c0150]
mov edx, 0x28
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x80], ax
mov eax, 2
imul rax, rax, 0x29
lea rcx, [0x1400c0150]
mov edx, 0x29
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x82], ax
mov eax, 2
imul rax, rax, 0x2a
lea rcx, [0x1400c0150]
mov edx, 0x2a
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x84], ax
mov eax, 2
imul rax, rax, 0x2b
lea rcx, [0x1400c0150]
mov edx, 0x2b
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x86], ax
mov eax, 2
imul rax, rax, 0x2c
lea rcx, [0x1400c0150]
mov edx, 0x2c
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x88], ax
mov eax, 2
imul rax, rax, 0x2d
lea rcx, [0x1400c0150]
mov edx, 0x2d
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x8a], ax
mov eax, 2
imul rax, rax, 0x2e
lea rcx, [0x1400c0150]
mov edx, 0x2e
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x8c], ax
mov eax, 2
imul rax, rax, 0x2f
lea rcx, [0x1400c0150]
mov edx, 0x2f
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x8e], ax
mov eax, 2
imul rax, rax, 0x30
lea rcx, [0x1400c0150]
mov edx, 0x30
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x90], ax
mov eax, 2
imul rax, rax, 0x31
lea rcx, [0x1400c0150]
mov edx, 0x31
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x92], ax
mov eax, 2
imul rax, rax, 0x32
lea rcx, [0x1400c0150]
mov edx, 0x32
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x94], ax
mov eax, 2
imul rax, rax, 0x33
lea rcx, [0x1400c0150]
mov edx, 0x33
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x96], ax
mov eax, 2
imul rax, rax, 0x34
lea rcx, [0x1400c0150]
mov edx, 0x34
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x98], ax
mov eax, 2
imul rax, rax, 0x35
lea rcx, [0x1400c0150]
mov edx, 0x35
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x9a], ax
mov eax, 2
imul rax, rax, 0x36
lea rcx, [0x1400c0150]
mov edx, 0x36
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x9c], ax
mov eax, 2
imul rax, rax, 0x37
lea rcx, [0x1400c0150]
mov edx, 0x37
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0x9e], ax
mov eax, 2
imul rax, rax, 0x38
lea rcx, [0x1400c0150]
mov edx, 0x38
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0xa0], ax
mov eax, 2
imul rax, rax, 0x39
lea rcx, [0x1400c0150]
mov edx, 0x39
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0xa2], ax
mov eax, 2
imul rax, rax, 0x3a
lea rcx, [0x1400c0150]
mov edx, 0x3a
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0xa4], ax
mov eax, 2
imul rax, rax, 0x3b
lea rcx, [0x1400c0150]
mov edx, 0x3b
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0xa6], ax
mov eax, 2
imul rax, rax, 0x3c
lea rcx, [0x1400c0150]
mov edx, 0x3c
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0xa8], ax
mov eax, 2
imul rax, rax, 0x3d
lea rcx, [0x1400c0150]
mov edx, 0x3d
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0xaa], ax
mov eax, 2
imul rax, rax, 0x3e
lea rcx, [0x1400c0150]
mov edx, 0x3e
movzx ecx, word [rcx + rax]
call fcn.140027060
mov word [rsp + 0xac], ax
lea rax, [rsp + 0xae]
lea rax, [rsp + 0xae]
mov rdi, rax
xor eax, eax
mov ecx, 2
rep stosb byte [rdi], al
mov dword [rsp + 0x20], 0
jmp 0x14003c769
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
cmp rax, 0x3f
jae 0x14003c796
movsxd rax, dword [rsp + 0x20]
movzx eax, word [rsp + rax*2 + 0x30]
mov ecx, dword [rsp + 0x20]
add ecx, 0x133
xor eax, ecx
movsxd rcx, dword [rsp + 0x20]
mov word [rsp + rcx*2 + 0x30], ax
jmp 0x14003c75f
mov eax, 2
imul rax, rax, 0x3f
xor ecx, ecx
mov word [rsp + rax + 0x30], cx
lea rax, [rsp + 0x30]
mov qword [rsp + 0xb0], rax
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0xf8]
call fcn.14001f8b0
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x28], 0xffffffffffffffff
inc qword [rsp + 0x28]
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x28]
cmp word [rax + rcx*2], 0
jne 0x14003c809
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd8], rax
mov r8, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xe0]
call fcn.1400389b0
mov qword [rsp + 0xe8], rax
mov rdx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x340]
call fcn.14001f4f0
mov eax, dword [rsp + 0x24]
or eax, 2
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x340]
mov qword [rsp + 0xf0], rax
mov eax, dword [rsp + 0x24]
or eax, 1
mov dword [rsp + 0x24], eax
lea rcx, [rsp + 0xf8]
call fcn.140036810
mov rax, qword [rsp + 0x340]
mov rcx, qword [rsp + 0x320]
xor rcx, rsp
call fcn.1400b6140
add rsp, 0x330
pop rdi
ret