Function at 0x46b1f0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x14
mov eax, dword [0x547570]
push ebx
mov ebx, ecx
push esi
mov ecx, 0x554e48
push edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x46b246
push ecx
call edi
mov esi, eax
test esi, esi
je 0x46b246
push esi
lea ecx, [esp + 0x14]
call fcn.00405530
test eax, eax
je 0x46b246
mov edx, dword [esp + 0x10]
inc esi
push esi
push 0x554e48
push edx
call fcn.00405400
add esp, 0xc
lea ecx, [esp + 0x10]
push 0xffffffffffffffff
call fcn.00405bb0
mov eax, dword [0x547570]
mov ecx, 0x554e48
test ecx, ecx
mov dword [esp + 0xc], eax
je 0x46b28e
push ecx
call edi
mov esi, eax
test esi, esi
je 0x46b28e
push esi
lea ecx, [esp + 0x10]
call fcn.00405530
test eax, eax
je 0x46b28e
mov edx, dword [esp + 0xc]
inc esi
push esi
push 0x554e48
push edx
call fcn.00405400
add esp, 0xc
lea ecx, [esp + 0xc]
push 0xffffffffffffffff
call fcn.00405bb0
call fcn.00503ad0
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x46b3d9
lea eax, [esp + 0x14]
push 0x46
push eax
call fcn.004bd990
lea ecx, [esp + 0x24]
push 0xbf
push ecx
call fcn.004bd990
mov eax, dword [eax]
mov edx, dword [esp + 0x24]
add esp, 0x10
push 0x43
push eax
mov eax, dword [ebx + 4]
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edx, dword [0x547574]
mov esi, eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x46b300
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x46b300
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff4
push edx
call fcn.00532222
add esp, 4
cmp esi, 2
jne 0x46b395
mov eax, dword [esp + 0x14]
mov edx, dword [0x547574]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x46b334
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x46b334
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00532222
add esp, 4
mov eax, dword [esp + 0xc]
mov edx, dword [0x547574]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x46b35f
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x46b35f
mov edx, dword [esp + 0xc]
add edx, 0xfffffff4
push edx
call fcn.00532222
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x547574]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x46b38a
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x46b38a
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00532222
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x10
cmp esi, 6
jne 0x46b3ae
call fcn.00516970
cmp eax, 1
jne 0x46b3ae
push 0
call fcn.00503ae0
add esp, 4
mov eax, dword [esp + 0x14]
mov edx, dword [0x547574]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x46b3d9
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x46b3d9
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00532222
add esp, 4
cmp word [esp + 0x28], 0x8034
jne 0x46b49d
lea eax, [esp + 0x1c]
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x46b49d
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00510710
lea edx, [esp + 0x28]
lea ecx, [esp + 0x14]
push edx
call fcn.00511000
mov ecx, dword [esp + 0xc]
mov esi, eax
mov eax, dword [esi]
cmp ecx, eax
je 0x46b469
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x46b439
mov edx, dword [0x547574]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x46b440
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x46b450
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x14]
call fcn.00405870
jmp 0x46b469
lea ecx, [esp + 0xc]
call fcn.004124c0
mov esi, dword [esi]
mov dword [esp + 0xc], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x28]
mov edx, dword [0x547574]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x46b494
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x46b494
mov edx, dword [esp + 0x28]
add edx, 0xfffffff4
push edx
call fcn.00532222
add esp, 4
lea ecx, [esp + 0x14]
call fcn.00510740
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
push eax
call fcn.00405440
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
push edx
call fcn.00405440
mov ecx, ebx
call fcn.0046b4e0
lea ecx, [esp + 0xc]
mov esi, eax
call fcn.00405700
lea ecx, [esp + 0x10]
call fcn.00405700
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x10