Function at 0x41c6c0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x440e71
mov eax, dword fs:[0]
push eax
sub esp, 0x258
mov eax, dword [0x4530e4]
xor eax, esp
mov dword [esp + 0x250], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4530e4]
xor eax, esp
push eax
lea eax, [esp + 0x26c]
mov dword fs:[0], eax
mov esi, ecx
mov ebp, dword [esp + 0x27c]
mov ecx, str.BTN_MOVE
mov eax, esi
jmp 0x41c710
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41c736
test dx, dx
je 0x41c732
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41c736
add eax, 4
add ecx, 4
test dx, dx
jne 0x41c710
xor eax, eax
jmp 0x41c73b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41c932
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x1c], 0
call dword [sym.imp.MxUI.dll_HTMLayoutGetRootElement]
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.MxUI.dll_HTMLayout_UseElement]
push eax
mov ebx, eax
call edi
mov esi, eax
neg esi
sbb esi, esi
not esi
and esi, ebx
push esi
call edi
mov ebx, eax
neg ebx
sbb ebx, ebx
not ebx
and ebx, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x274], 0
test esi, esi
je 0x41c79a
push esi
call dword [sym.imp.MxUI.dll_HTMLayout_UnuseElement]
lea edx, [esp + 0x1c]
push edx
mov edx, str.EDIT_PATH
call fcn.004017e0
mov esi, eax
push esi
call edi
mov edi, eax
neg edi
sbb edi, edi
not edi
and edi, esi
mov dword [esp + 0x18], edi
xor eax, eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x10]
push 0x11
push 0
mov dword [esp + 0x3c], 0x51
mov dword [esp + 0x2c], eax
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
lea esi, [esp + 0x14]
lea eax, [esp + 0x18]
mov dword [esp + 0x34], 0x41c5b0
call fcn.00407150
mov byte [esp + 0x274], 2
mov eax, dword [eax]
test eax, eax
je 0x41c820
add eax, 8
jmp 0x41c825
mov eax, 0x4562c4
xor edx, edx
mov ecx, eax
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], 0
mov word [esp + 0x44], dx
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41c841
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x44]
call fcn.00408320
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41c876
dec dword [eax]
cmp dword [eax], 0
jne 0x41c876
mov eax, dword [esp + 0x14]
push eax
call fcn.0042c376
add esp, 4
cmp dword [esp + 0x58], 8
jb 0x41c887
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x38], ecx
jmp 0x41c88f
lea edx, [esp + 0x44]
mov dword [esp + 0x38], edx
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
mov ebp, dword [sym.imp.ole32.dll_CoTaskMemFree]
mov esi, eax
test esi, esi
je 0x41c8dc
lea ecx, [esp + 0x5c]
push ecx
push esi
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
push esi
call ebp
lea eax, [esp + 0x5c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41c8c0
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x60]
push edx
push edi
call dword [sym.imp.MxUI.dll_HTMLayoutSetElementInnerText16]
mov eax, dword [esp + 0x24]
push eax
call ebp
cmp dword [esp + 0x58], 8
jb 0x41c8f7
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0042bb4c
add esp, 4
xor edx, edx
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], 0
mov word [esp + 0x44], dx
test edi, edi
je 0x41c919
push edi
call dword [sym.imp.MxUI.dll_HTMLayout_UnuseElement]
test ebx, ebx
je 0x41cae0
push ebx
call dword [sym.imp.MxUI.dll_HTMLayout_UnuseElement]
mov eax, 1
jmp 0x41cae9
mov ecx, str.BTN_UNLINK
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41c966
test dx, dx
je 0x41c962
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41c966
add eax, 4
add ecx, 4
test dx, dx
jne 0x41c940
xor eax, eax
jmp 0x41c96b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41c9f7
call fcn.0040c940
push 0
push str.Settings
mov ebx, str.Unlink
lea edx, [esp + 0x48]
mov ecx, eax
call fcn.0040caa0
mov eax, dword [esp + 0x44]
mov esi, 8
cmp dword [esp + 0x58], esi
jae 0x41c9a2
lea eax, [esp + 0x44]
push 0x124
push str.V_drive
push eax
mov eax, dword [ebp + 0x10]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x41c9d6
mov ecx, dword [ebp + 0x10]
push 0
push 0
push 0x10
push ecx
mov dword [ebp + 0x47c], 1
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [esp + 0x58], esi
jb 0x41cae0
mov edx, dword [esp + 0x44]
push edx
call fcn.0042bb4c
add esp, 4
mov eax, 1
jmp 0x41cae9
mov ecx, str.BTN_OK
mov eax, esi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41ca26
test dx, dx
je 0x41ca22
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41ca26
add eax, 4
add ecx, 4
test dx, dx
jne 0x41ca00
xor eax, eax
jmp 0x41ca2b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41ca59
push ebp
call fcn.0041bd80
mov eax, dword [ebp + 0x10]
push 0
push 0
push 0x10
push eax
mov dword [ebp + 0x46c], 1
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
jmp 0x41cae9
mov ecx, str.BTN_APPLY
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41ca86
test dx, dx
je 0x41ca82
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41ca86
add eax, 4
add ecx, 4
test dx, dx
jne 0x41ca60
xor eax, eax
jmp 0x41ca8b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41ca9c
push ebp
call fcn.0041bd80
mov eax, 1
jmp 0x41cae9
mov ecx, str.BTN_CANCEL
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41cac9
test dx, dx
je 0x41cac5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41cac9
add eax, 4
add ecx, 4
test dx, dx
jne 0x41caa3
xor eax, eax
jmp 0x41cace
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x41cae7
mov ecx, dword [ebp + 0x10]
push eax
push eax
push 0x10
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
jmp 0x41cae9
xor eax, eax
mov ecx, dword [esp + 0x26c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.0042bb57
add esp, 0x264
ret 4