Function at 0x4ddcd0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5bdcd1
mov eax, dword fs:[0]
push eax
sub esp, 0x224
mov eax, dword [0x615370]
xor eax, esp
mov dword [esp + 0x21c], eax
push ebx
push esi
mov eax, dword [0x615370]
xor eax, esp
push eax
lea eax, [esp + 0x230]
mov dword fs:[0], eax
mov ecx, dword [edi + 0x78]
xor ebx, ebx
cmp ecx, ebx
je 0x4de27a
mov dword [esp + 0xc], ebx
mov dword [esp + 0x238], ebx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
lea edx, [esp + 0xc]
push edx
push str.BtnClose
call eax
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4ddd95
mov esi, eax
cmp dword [edi + 0x124], eax
je 0x4ddd76
cmp eax, ebx
je 0x4ddd5a
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x124]
cmp ecx, ebx
je 0x4ddd70
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x124], esi
mov ecx, dword [edi + 0x124]
cmp ecx, ebx
je 0x4ddd95
lea edx, [edi + 0x158]
cmp edx, ebx
je 0x4ddd95
push edx
push ebx
call fcn.00545b30
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x4ddda5
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.BtnImport
call edx
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4dde16
mov esi, eax
cmp dword [edi + 0x128], eax
je 0x4dddf7
cmp eax, ebx
je 0x4ddddb
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x128]
cmp ecx, ebx
je 0x4dddf1
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x128], esi
mov ecx, dword [edi + 0x128]
cmp ecx, ebx
je 0x4dde16
lea edx, [edi + 0x158]
cmp edx, ebx
je 0x4dde16
push edx
push ebx
call fcn.00545b30
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x4dde26
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.BtnCancel
call edx
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4dde97
mov esi, eax
cmp dword [edi + 0x12c], eax
je 0x4dde78
cmp eax, ebx
je 0x4dde5c
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x12c]
cmp ecx, ebx
je 0x4dde72
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x12c], esi
mov ecx, dword [edi + 0x12c]
cmp ecx, ebx
je 0x4dde97
lea edx, [edi + 0x158]
cmp edx, ebx
je 0x4dde97
push edx
push ebx
call fcn.00545b30
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x4ddea7
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.BtnComplete
call edx
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4ddf18
mov esi, eax
cmp dword [edi + 0x130], eax
je 0x4ddef9
cmp eax, ebx
je 0x4ddedd
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x130]
cmp ecx, ebx
je 0x4ddef3
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x130], esi
mov ecx, dword [edi + 0x130]
cmp ecx, ebx
je 0x4ddf18
lea edx, [edi + 0x158]
cmp edx, ebx
je 0x4ddf18
push edx
push ebx
call fcn.00545b30
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x4ddf28
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.CheckAll
call edx
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4ddf9d
mov esi, eax
cmp dword [edi + 0x134], eax
je 0x4ddf7a
cmp eax, ebx
je 0x4ddf5e
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x134]
cmp ecx, ebx
je 0x4ddf74
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x134], esi
mov ecx, dword [edi + 0x134]
cmp ecx, ebx
je 0x4ddf9d
lea edx, [edi + 0x158]
cmp edx, ebx
je 0x4ddf9d
push edx
push 0x190
call fcn.00545b30
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x4ddfad
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.InfoBar
call edx
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4ddfff
mov esi, eax
cmp dword [edi + 0x13c], eax
je 0x4ddfff
cmp eax, ebx
je 0x4ddfe3
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x13c]
cmp ecx, ebx
je 0x4ddff9
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x13c], esi
cmp eax, ebx
je 0x4de00f
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.BottomBar
call edx
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4de061
mov esi, eax
cmp dword [edi + 0x140], eax
je 0x4de061
cmp eax, ebx
je 0x4de045
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x140]
cmp ecx, ebx
je 0x4de05b
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x140], esi
cmp eax, ebx
je 0x4de071
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.BottomBar2
call edx
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4de0c3
mov esi, eax
cmp dword [edi + 0x144], eax
je 0x4de0c3
cmp eax, ebx
je 0x4de0a7
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x144]
cmp ecx, ebx
je 0x4de0bd
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x144], esi
cmp eax, ebx
je 0x4de0d3
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.TipsBar
call edx
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x4de125
mov esi, eax
cmp dword [edi + 0x148], eax
je 0x4de125
cmp eax, ebx
je 0x4de109
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x148]
cmp ecx, ebx
je 0x4de11f
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [esp + 0xc]
mov dword [edi + 0x148], esi
cmp eax, ebx
je 0x4de135
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esp + 0xc], ebx
mov ecx, dword [edi + 0x78]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c]
lea eax, [esp + 0xc]
push eax
push str.MatrixApp
call edx
test eax, eax
jl 0x4de25f
mov eax, dword [esp + 0xc]
mov esi, eax
cmp dword [edi + 0x138], eax
je 0x4de183
cmp eax, ebx
je 0x4de16b
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [edi + 0x138]
cmp eax, ebx
je 0x4de17d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [edi + 0x138], esi
lea esi, [esp + 0x10]
call fcn.005169b4
push 0x208
lea eax, [esp + 0x20]
push 0
mov ebx, 1
push eax
mov byte [esp + 0x244], bl
call fcn.0058e300
add esp, 0xc
push ebx
push 0x10
lea ecx, [esp + 0x24]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x20]
call fcn.00406c20
mov byte [esp + 0x238], 2
mov eax, dword [esp + 0x10]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
call fcn.00406580
add eax, 0x10
push edi
mov dword [esi], eax
call fcn.004de710
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
call fcn.00406580
add eax, 0x10
push edi
mov dword [esi], eax
call fcn.004de710
mov byte [esp + 0x238], bl
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4de235
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x238], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4de25d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor ebx, ebx
mov dword [esp + 0x238], 0xffffffff
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x4de27a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call fcn.004081e0
mov esi, eax
cmp dword [edi + 0x14c], esi
je 0x4de2ad
cmp esi, ebx
je 0x4de295
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
mov eax, dword [edi + 0x14c]
cmp eax, ebx
je 0x4de2a7
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [edi + 0x14c], esi
cmp dword [edi + 0x14c], ebx
je 0x4de2d1
mov ebx, edi
call fcn.004dedb0
test eax, eax
jne 0x4de2d1
mov ecx, dword [edi + 0x128]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0xc4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x230]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x21c]
xor ecx, esp
call fcn.005886fc
mov esp, ebp
pop ebp
ret