Function at 0x41cd30
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54ff24
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x5b88c8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov ecx, esi
call fcn.00440ab9
call fcn.00443bdc
test eax, eax
jne 0x41cd87
push 0xffffffffffffffff
push eax
push 0x64
call fcn.00442a1e
xor eax, eax
jmp 0x41d723
xor ebx, ebx
push ebx
call fcn.00443596
add esp, 4
push 0x561d44
mov ecx, esi
call fcn.00441701
push 0x561d3c
lea eax, [esi + 0x48f0]
push 0x64
push eax
call fcn.005363ab
push 0x561d38
lea ecx, [esi + 0xe8]
push 0x14
push ecx
call fcn.005363ab
add esp, 0x18
push 0x104
lea edi, [esi + 0xfe31]
push edi
push str.FotoMix.EXE
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
mov ecx, 0x5bb1c0
call fcn.00413180
xor eax, eax
cmp byte [0x5bb5f0], bl
je 0x41ce1c
lea ebx, [ebx]
inc eax
cmp byte [eax + 0x5bb5f0], bl
jne 0x41ce00
cmp eax, ebx
jle 0x41ce1c
cmp byte [eax + 0x5bb5ef], 0x5c
jne 0x41ce1c
mov byte [eax + 0x5bb5ef], bl
push 0x5bb8fc
push 0x104
push edi
call fcn.005363ab
push 0x5bb5f0
push 0x104
push edi
call fcn.005364ca
push edi
push 0x104
push 0x5bb3dc
call fcn.005363ab
push edi
push 0x104
push 0x5bb4e8
call fcn.005363ab
push edi
lea eax, [esi + 0xff35]
push 0x104
push eax
call fcn.005363ab
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
add esp, 0x3c
push ebx
push 0x27
lea edx, [ebp - 0x114]
push edx
push ebx
call edi
test eax, eax
je 0x41ceb7
lea eax, [ebp - 0x114]
push eax
push 0x104
push 0x5bb3dc
call fcn.005363ab
lea ecx, [ebp - 0x114]
push ecx
push 0x104
push 0x5bb4e8
call fcn.005363ab
add esp, 0x18
push ebx
push 5
lea edx, [ebp - 0x114]
push edx
push ebx
call edi
test eax, eax
je 0x41cef3
lea eax, [ebp - 0x114]
push eax
push 0x104
lea edi, [esi + 0xff35]
push edi
call fcn.005363ab
push str.FotoMix_Data
push 0x104
push edi
call fcn.005364ca
add esp, 0x18
lea eax, [esi + 0xff35]
push eax
push 0x104
push 0x5bb2d0
call fcn.005363ab
push str.Textures
push 0x104
push 0x5bb2d0
call fcn.005364ca
mov edi, 1
mov dword [esi + 0x49c0], edi
mov dword [esi + 0x49bc], edi
add esp, 0x18
mov ecx, 0x5bb1c0
mov dword [0x5c4ce8], 0x82
mov dword [0x5c4cec], 0x2b
call fcn.004108f0
lea ecx, [esi + 0xfd5c]
call fcn.00405c50
lea ecx, [esi + 0x1ca4]
call fcn.00408420
mov dword [esi + 0x4960], edi
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebx
call edi
push 1
mov dword [esi + 0xaf30], eax
call edi
mov edi, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f86
push ebx
mov dword [esi + 0xaf34], eax
call edi
push 0x7f82
push ebx
mov dword [esi + 0xfe24], eax
call edi
push 0x7f85
push ebx
mov dword [esi + 0xfe28], eax
call edi
push 0x7f00
push ebx
mov dword [esi + 0xfe2c], eax
call edi
mov dword [esi + 0xfe00], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
mov edi, dword [sym.imp.USER32.dll_LoadCursorW]
push 0xda
push eax
call edi
mov dword [esi + 0xfdf8], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push 0xee
push eax
call edi
mov dword [esi + 0xfdfc], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push 0xdb
push eax
call edi
mov dword [esi + 0xfe04], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push 0xde
push eax
call edi
mov dword [esi + 0xfe10], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push 0xe5
push eax
call edi
mov dword [esi + 0xfe14], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push pe_nt_image_headers32
push eax
call edi
mov dword [esi + 0xfe18], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push 0xe6
push eax
call edi
mov dword [esi + 0xfe1c], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push 0xde
push eax
call edi
mov dword [esi + 0xfe20], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push 0xdd
push eax
call edi
mov dword [esi + 0xfe08], eax
call fcn.0043e6c0
mov eax, dword [eax + 0xc]
push 0xef
push eax
call edi
push 0x3c
lea edi, [esi + 0xaee8]
push ebx
push edi
mov dword [esi + 0xfe0c], eax
mov dword [esi + 0xaf58], ebx
mov dword [esi + 0xaf38], ebx
mov dword [esi + 0xaf3c], ebx
mov dword [esi + 0xaf40], 0x400
mov dword [esi + 0xaf44], 0x300
call fcn.00536200
push str.Verdana
lea ecx, [esi + 0xaf04]
push 0x20
push ecx
mov word [esi + 0xaeff], 0x400
mov byte [esi + 0xaf01], 2
mov word [esi + 0xaf02], 0x2202
call fcn.005363ab
mov eax, 0x64
mov dword [edi], 0xffffffea
mov edi, 0xffffff
mov ecx, 0xff0000
push 0x34
mov dword [esi + 0xaef8], 0x2bc
mov dword [esi + 0xaf24], edi
mov dword [esi + 0x49a8], edi
mov dword [esi + 0x499c], 0xffffffff
mov dword [esi + 0x49a0], eax
mov dword [esi + 0xaf64], eax
mov dword [esi + 0xaf68], 4
mov dword [esi + 0xaf6c], 5
mov dword [esi + 0x49a4], 1
mov dword [esi + 0x49b0], 0xff00
mov dword [esi + 0x49b4], edi
mov dword [esi + 0x49b8], ecx
mov dword [esi + 0xaf7c], edi
mov dword [esi + 0xaf70], 0xa
mov dword [esi + 0xaf80], ecx
mov dword [esi + 0xaf74], eax
mov dword [esi + 0xaf78], ebx
call fcn.00432aa8
add esp, 0x1c
mov dword [ebp - 0x21c], eax
mov dword [ebp - 4], ebx
cmp eax, ebx
je 0x41d1c6
push 0x190
push 0x190
mov ecx, eax
call fcn.0040ee90
jmp 0x41d1c8
xor eax, eax
push 0x34
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0xe944], eax
call fcn.00432aa8
add esp, 4
mov dword [ebp - 0x21c], eax
mov dword [ebp - 4], 1
cmp eax, ebx
je 0x41d203
push 0x190
push 0x190
mov ecx, eax
call fcn.0040ee90
jmp 0x41d205
xor eax, eax
mov dword [esi + 0xe948], eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0xfdb0], ebx
mov dword [esi + 0x49c4], ebx
mov dword [esi + 0x49c8], ebx
mov dword [esi + 0x49cc], ebx
mov dword [esi + 0x49d0], ebx
lea eax, [esi + 0x4a80]
mov ecx, 0x64
jmp 0x41d240
mov dword [eax - 4], ebx
mov dword [eax], ebx
add eax, 0x100
dec ecx
mov byte [esi + 0xade0], bl
jne 0x41d240
mov dword [esi + 0xadd8], ebx
mov dword [esi + 0xaddc], ebx
xor eax, eax
lea ecx, [esi + 0xae20]
mov dword [ecx], eax
add eax, 0xf
add ecx, 4
cmp eax, 0x168
jle 0x41d267
mov eax, 0x5af690
lea ecx, [esi + 0xade4]
mov edx, dword [eax]
mov dword [ecx], edx
add eax, 4
add ecx, 4
cmp eax, 0x5af6cc
jl 0x41d281
mov eax, 1
push 0x560384
mov dword [esi + 0x498c], edi
mov dword [esi + 0xfdf0], edi
mov dword [esi + 0xfdf4], edi
lea edi, [esi + 0xcc]
push 5
push edi
mov dword [esi + 0xe94c], ebx
mov byte [esi + 0xaf5c], bl
mov dword [esi + 0x1003c], 0x168
mov dword [esi + 0x10040], eax
mov dword [esi + 0x10044], eax
mov byte [esi + 0xfe30], al
mov dword [esi + 0x4964], eax
mov dword [esi + 0x4968], ebx
mov dword [esi + 0x496c], eax
mov dword [esi + 0x4970], ebx
mov dword [esi + 0x4974], 0xc8
mov dword [esi + 0x4978], 0x2bc
mov dword [esi + 0x497c], 0x1f4
mov dword [esi + 0x4990], 0x808080
mov dword [esi + 0x4988], eax
mov dword [esi + 0x4980], 0xa
mov dword [esi + 0x4984], ebx
mov dword [esi + 0xfde8], ebx
mov dword [esi + 0xfdec], ebx
call fcn.005363ab
or eax, 0xffffffff
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc8], eax
mov eax, 1
add esp, 0xc
mov dword [esi + 0x4954], eax
mov dword [esi + 0x4958], eax
lea eax, [esi + 0xd4]
push eax
push str.LTDown
push str.Preferences
push ebx
mov ecx, 0x5bb1c0
mov dword [esi + 0x495c], ebx
mov dword [eax], ebx
call fcn.004131c0
cmp dword [esi + 0xd4], ebx
jne 0x41d3b0
mov eax, dword [esi + 0x48]
cmp byte [eax], 0x2d
jne 0x41d3a8
cmp byte [eax + 1], 0x72
jne 0x41d3a8
cmp byte [eax + 2], bl
je 0x41d3b0
push ebx
mov ecx, esi
call fcn.0041c5c0
lea eax, [ebp - 0x220]
push eax
push str.LTDown
push str.Preferences
push 1
mov ecx, 0x5bb1c0
mov dword [ebp - 0x220], 1
call fcn.004131c0
cmp dword [esi + 0x4954], ebx
je 0x41d42f
mov eax, dword [0x5bb1c0]
cmp eax, 1
jne 0x41d3f3
push 0x561cfc
jmp 0x41d475
cmp eax, 2
jne 0x41d3ff
push 0x561cf8
jmp 0x41d475
cmp eax, 3
jne 0x41d40b
push 0x561cf4
jmp 0x41d475
cmp eax, 4
jne 0x41d417
push 0x561cf0
jmp 0x41d475
cmp eax, 5
jne 0x41d423
push 0x561cec
jmp 0x41d475
cmp eax, 6
jne 0x41d470
push 0x561ce8
jmp 0x41d475
cmp dword [esi + 0x4958], ebx
je 0x41d480
cmp dword [esi + 0xc8], 0xffffffff
je 0x41d470
mov eax, dword [esi + 0xc4]
cmp eax, 0x1e1
jne 0x41d454
push 0x561cfc
jmp 0x41d475
cmp eax, 0x1e2
jne 0x41d462
push 0x561cf8
jmp 0x41d475
cmp eax, 0x1e3
jne 0x41d470
push 0x561cf4
jmp 0x41d475
push 0x560384
push 5
push edi
call fcn.005363ab
add esp, 0xc
push edi
lea ecx, [esi + 0x1ca4]
call fcn.00407d40
test al, al
jne 0x41d4a0
push 0x560384
push 5
push edi
call fcn.005363ab
add esp, 0xc
mov eax, 0x560384
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x41d4c5
cmp cl, bl
je 0x41d4c1
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x41d4c5
add edi, 2
add eax, 2
cmp cl, bl
jne 0x41d4a5
xor eax, eax
jmp 0x41d4ca
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
mov eax, dword [esi + 0xaf30]
sete cl
mov byte [esi + 0xd1], cl
cmp dword [esi + 0xaf40], eax
jg 0x41d4f1
mov edx, dword [esi + 0xaf44]
cmp edx, dword [esi + 0xaf34]
jle 0x41d50f
mov dword [esi + 0xaf40], eax
mov eax, dword [esi + 0xaf34]
mov dword [esi + 0xaf38], ebx
mov dword [esi + 0xaf3c], ebx
mov dword [esi + 0xaf44], eax
push 0x8c
mov dword [esi + 0xfd2c], 0x172
mov byte [esi + 0xfd34], 1
mov byte [esi + 0xc0], bl
call fcn.00432aa8
add esp, 4
mov dword [ebp - 0x21c], eax
mov dword [ebp - 4], 2
cmp eax, ebx
je 0x41d561
push 0x561f24
push 0x5623e4
push 0x561d68
push 0x80
mov ecx, eax
call fcn.00442a80
jmp 0x41d563
xor eax, eax
or edi, 0xffffffff
mov dword [ebp - 4], edi
cmp eax, ebx
je 0x41cd80
push eax
mov ecx, esi
call fcn.00442097
lea ecx, [ebp - 0x24c]
call fcn.00440704
lea ecx, [ebp - 0x24c]
push ecx
mov ecx, esi
mov dword [ebp - 4], 3
call fcn.0043fc31
lea edx, [ebp - 0x24c]
push edx
mov ecx, esi
call fcn.00441ee7
test eax, eax
jne 0x41d5c0
lea ecx, [ebp - 0x24c]
mov dword [ebp - 4], edi
call fcn.0044076e
xor eax, eax
jmp 0x41d723
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0xbc]
push eax
mov dword [esi + 0xb8], ecx
call fcn.0043cbfb
mov eax, dword [esi + 0xbc]
mov ecx, dword [eax + 0x20]
push 1
push ecx
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
mov byte [esi + 0xc0], 1
mov ecx, dword [0x5b9e58]
call fcn.00420990
cmp dword [esi + 0xaf58], ebx
je 0x41d620
call fcn.00440fec
cmp eax, ebx
je 0x41d615
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
jmp 0x41d617
xor eax, eax
push 3
mov ecx, eax
call fcn.0043cbfb
mov eax, dword [esi + 0xbc]
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
cmp dword [esi + 0xd4], ebx
jne 0x41d6f6
lea eax, [esi + 0xff35]
push eax
lea edx, [ebp - 0x114]
push 0x104
push edx
call fcn.005363ab
add esp, 0xc
cmp dword [esi + 0x4954], ebx
je 0x41d672
push str.Sample.fmx
push 0x104
lea eax, [ebp - 0x114]
push eax
jmp 0x41d683
push str.Current.fmx
push 0x104
lea ecx, [ebp - 0x114]
push ecx
call fcn.005364ca
add esp, 0xc
lea edx, [ebp - 0x114]
push edx
mov ecx, esi
call fcn.0041b6d0
test eax, eax
jne 0x41d6a4
mov ecx, esi
call fcn.0041a1c0
mov eax, dword [esi + 0x48]
mov cl, byte [eax]
cmp cl, 0x2d
jne 0x41d6b9
cmp byte [eax + 1], 0x72
jne 0x41d6b9
cmp byte [eax + 2], bl
je 0x41d6fd
cmp cl, bl
je 0x41d6fd
xor edx, edx
cmp byte [eax], bl
je 0x41d6dc
mov esi, dword [esi + 0x48]
mov ecx, eax
mov al, byte [ecx]
cmp al, 0x22
je 0x41d6d6
mov byte [ebp + edx - 0x218], al
inc edx
inc esi
inc ecx
cmp byte [esi], bl
jne 0x41d6c8
lea eax, [ebp - 0x218]
push eax
mov ecx, 0x5c7628
mov byte [ebp + edx - 0x218], bl
call fcn.00429720
jmp 0x41d6fd
mov ecx, esi
call fcn.0041a1c0
mov ecx, dword [0x5b9e5c]
mov edx, dword [ecx + 0x20]
push 1
push ebx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [ebp - 0x24c]
mov dword [ebp - 4], edi
call fcn.0044076e
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00535a9b
mov esp, ebp
pop ebp
ret