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

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0xef8
push ebx
push esi
mov esi, 0x104
push esi
lea eax, [ebp - 0xa70]
push eax
xor ebx, ebx
push ebx
mov byte [ebp + 0x74], dl
mov byte [ebp + 0x70], cl
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edx, 0xc0000000
lea ecx, [ebp - 0xa70]
call fcn.0046bd8c
mov byte [ebp + 0x6e], al
mov byte [ebp + 0x6f], bl
cmp byte [ebp + 0x70], bl
jne 0x46d802
lea ecx, [ebp + 0x1c]
call fcn.00475dae
lea eax, [ebp + 0x74]
push eax
push 0xfe
mov dword [ebp + 0x1c], 0x521b70
call fcn.00476ebd
push eax
lea ecx, [ebp + 0x1c]
call fcn.00476b03
lea ecx, [ebp + 0x1c]
cmp byte [ebp + 0x48], bl
jne 0x46d7fd
call fcn.0047678a
jmp 0x46dcdf
call fcn.0047678a
call fcn.004699a1
test al, al
jne 0x46d82a
cmp byte [ebp + 0x70], bl
jne 0x46d86c
push 0x10
push dword [0x896f4c]
push dword [0x896f50]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x46dcdf
cmp byte [ebp + 0x70], bl
jne 0x46d86c
movzx eax, byte [0x56bb50]
cmp eax, 6
jb 0x46d86c
cmp byte [ebp + 0x6e], bl
jne 0x46d86c
call fcn.004c9f32
test eax, eax
jne 0x46d86c
push ebx
push 1
lea ecx, [ebp - 0xa70]
push ebx
mov edx, 0x52212c
cmp byte [ebp + 0x74], bl
je 0x46d862
mov edx, 0x5220f4
call fcn.0046bda7
jmp 0x46dcdf
mov cl, byte [ebp + 0x74]
push edi
call fcn.00425778
mov dword [0x88f81c], ebx
mov dword [0x88f814], ebx
mov dword [0x88f818], ebx
call fcn.0049b96a
push ebx
push ebx
push ebx
push ebx
push ebx
push 8
xor edx, edx
pop ecx
call fcn.0046d0b6
lea ecx, [ebp - 0x48]
call fcn.0046a6e9
push 8
push 0x890178
lea ecx, [ebp - 0x48]
call fcn.004375db
push esi
lea eax, [ebp - 0x458]
push eax
mov edi, 0x51e7f8
push 0x51eb40
mov edx, edi
mov ecx, 0x80000002
call fcn.0044f8a9
test al, al
je 0x46da8a
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x458]
call fcn.004c9d65
mov eax, 0x515b7c
lea ecx, [ebp - 0x250]
call fcn.004068fc
lea ecx, [ebp - 0xa70]
call fcn.004b696a
lea ecx, [ebp - 0x250]
call fcn.004068fc
lea ecx, [ebp - 0x250]
call fcn.0044bde2
push ebx
push 0x16
lea eax, [ebp - 0x250]
push eax
call fcn.00469720
push ebx
push 0x19
lea eax, [ebp - 0x250]
push eax
call fcn.00469720
push 0x520b10
push 0x1a
lea eax, [ebp - 0x250]
push eax
call fcn.00469720
push ebx
push 0xb
lea eax, [ebp - 0x250]
push eax
call fcn.00469720
push ebx
push 0x10
lea eax, [ebp - 0x250]
push eax
call fcn.00469720
push ebx
lea eax, [ebp - 0x250]
call fcn.0046930a
test al, al
je 0x46d983
xor edx, edx
xor cl, cl
call fcn.00469444
push 1
push 0x28
lea eax, [ebp - 0x660]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x46da5a
lea eax, [ebp - 0x660]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x46d9a6
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x660]
push eax
lea eax, [ebp - 0x458]
push eax
call sub.msvcrt.dll__wcsnicmp
add esp, 0xc
test eax, eax
jne 0x46da5a
lea esi, [ebp - 0xc78]
call fcn.00469932
mov eax, 0x515b7c
lea ecx, [ebp - 0x660]
call fcn.004068fc
mov eax, esi
lea ecx, [ebp - 0x660]
call fcn.004068fc
push ebx
lea edx, [ebp - 0x660]
lea ecx, [ebp + 0x58]
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x5c], ebx
call fcn.00482781
cmp dword [ebp + 0x60], 1
jne 0x46da41
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
push 0x51c608
push eax
call sub.msvcrt.dll__wcsicmp
pop ecx
pop ecx
test eax, eax
jne 0x46da41
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x660]
call fcn.004c9d65
lea ecx, [ebp + 0x58]
call fcn.0043d153
lea ecx, [ebp + 0x58]
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x60], ebx
call fcn.004a0bd2
push ebx
lea edx, [ebp - 0x458]
lea ecx, [ebp + 0x4c]
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x50], ebx
call fcn.00482781
xor eax, eax
inc eax
cmp eax, dword [ebp + 0x54]
lea ecx, [ebp + 0x4c]
sbb al, al
inc al
mov byte [ebp + 0x6f], al
mov dword [ebp + 0x54], ebx
call fcn.004a0bd2
mov ecx, 0x517834
call fcn.0049a53c
push eax
lea ecx, [ebp + 0x68]
call fcn.004a0fd9
cmp byte [ebp + 0x74], bl
je 0x46db15
mov ecx, dword [ebp + 0x68]
cmp ecx, ebx
je 0x46db15
xor eax, eax
cmp word [ecx], bx
sete al
cmp al, bl
jne 0x46db15
lea ecx, [ebp + 0x68]
call fcn.004a0ff9
mov ecx, eax
call fcn.004697fe
push 0x5160f4
push 0x515b7c
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp + 0x64]
push 0x5181c4
push eax
call fcn.004a1618
add esp, 0x14
lea ecx, [ebp + 0x64]
call fcn.004a0ff9
mov ecx, eax
call fcn.0049a555
test eax, eax
je 0x46db0d
push 0x80
lea ecx, [ebp + 0x64]
call fcn.004a0ff9
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea ecx, [ebp + 0x64]
call fcn.004a0c7d
lea ecx, [ebp - 0xe80]
call fcn.0048ec8a
lea ecx, [ebp - 0xe80]
call fcn.004697fe
call fcn.00466d89
mov ecx, 0x51d43c
mov esi, eax
call fcn.00469251
mov ecx, 0x520558
call fcn.00469251
mov ecx, 0x5205cc
call fcn.00469251
mov ecx, 0x520698
call fcn.00469251
mov ecx, 0x51e114
call fcn.00469251
mov ecx, 0x51e0fc
call fcn.00469251
push 0x520e60
push esi
call fcn.0044e7e3
push 0x520338
push esi
call fcn.0044e7e3
push 0x5220a8
push esi
call fcn.0044e7e3
push 0x520eb0
push esi
call fcn.0044e7e3
push 0x520df8
push esi
call fcn.0044e7e3
push 0x522070
push esi
call fcn.0044e7e3
push 0x522018
push esi
call fcn.0044e7e3
push 0x51e948
mov esi, 0x80000001
push esi
call fcn.0044e7e3
push 0x520968
push esi
call fcn.0044e7e3
push 0x51e788
push esi
call fcn.0044e7e3
push edi
push 0x80000002
call fcn.0044e7e3
mov ecx, 0x520f3c
call fcn.0046b583
mov ecx, 0x520f78
call fcn.0046b583
mov ecx, 0x51e116
call fcn.0046b583
mov ecx, 0x51e0fe
call fcn.0046b583
mov ecx, 0x5205ce
call fcn.0046b583
mov ecx, 0x52069a
call fcn.0046b583
pop edi
cmp byte [ebp + 0x6f], bl
je 0x46dcc3
cmp dword [0x56bb50], 0x80000000
lea eax, [ebp - 0x868]
push eax
mov eax, 0x521ff8
jb 0x46dc4f
mov eax, 0x521fe0
call fcn.004c9d65
lea eax, [ebp - 0x868]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x46dc5d
sub eax, edx
sar eax, 1
mov esi, eax
lea eax, [ebp - 0x868]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, bx
jne 0x46dc76
sub eax, edx
sar eax, 1
mov ecx, 0x104
sub ecx, esi
push ecx
lea eax, [ebp + eax*2 - 0x868]
push eax
lea eax, [ebp - 0x458]
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
test eax, eax
jne 0x46dcb6
lea eax, [ebp - 0x458]
lea ecx, [ebp - 0x868]
call fcn.004068fc
lea ecx, [ebp - 0x868]
call fcn.00435a84
jmp 0x46dcc8
call fcn.00435be8
lea ecx, [ebp + 0x68]
call fcn.004a0c7d
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x50fa3c
call fcn.0040ba32
pop esi
pop ebx
add ebp, 0x78
leave
ret