Function at 0x402650
Capabilities:
Get common file path
Get file system object information

Disassembly:
push 0xffffffffffffffff
push 0x44a4d3
mov eax, dword fs:[0]
push eax
sub esp, 0x180
mov eax, dword [0x45d740]
xor eax, esp
mov dword [esp + 0x17c], eax
push ebx
push ebp
push edi
mov eax, dword [0x45d740]
xor eax, esp
push eax
lea eax, [esp + 0x190]
mov dword fs:[0], eax
xor ebx, ebx
push ebx
push 0x66
mov ecx, esi
mov dword [esp + 0x20], esi
call fcn.00414e6d
mov dword [esp + 0x198], ebx
mov dword [esi], vtable.CFileClientDlg.0
call fcn.00412fcd
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4026c1
push 0x80004005
call fcn.00402350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0x78], eax
mov byte [esp + 0x198], 1
call fcn.00412fcd
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4026f2
push 0x80004005
call fcn.00402350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0x7c], eax
mov byte [esp + 0x198], 2
call fcn.00412fcd
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x402723
push 0x80004005
call fcn.00402350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0x84], eax
mov byte [esp + 0x198], 3
call fcn.00412fcd
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x402757
push 0x80004005
call fcn.00402350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0x88], eax
mov eax, vtable.CList_class_ATL::CStringT_char__class_StrTraitMFC_char__class_ATL::ChTraitsCRT_char_____class_ATL::CStringT_char__class_StrTraitMFC_char__class_ATL::ChTraitsCRT_char_____.0
mov ecx, 0xa
mov dword [esi + 0xa0], eax
mov dword [esi + 0xac], ebx
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xa4], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], eax
mov dword [esi + 0xc8], ebx
mov dword [esi + 0xcc], ebx
mov dword [esi + 0xc4], ebx
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xd0], ebx
mov dword [esi + 0xd4], ecx
mov dword [esi + 0xd8], eax
mov dword [esi + 0xe4], ebx
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xe0], ebx
mov dword [esi + 0xdc], ebx
mov dword [esi + 0xec], ebx
mov dword [esi + 0xf0], ecx
lea edi, [esi + 0xf4]
mov ecx, edi
mov byte [esp + 0x198], 7
call fcn.0041b72e
mov dword [edi], vtable.CTrueColorToolBar.0
mov ebp, vtable.CArray_struct_CTrueColorToolBar::stDropDownInfo__struct_CTrueColorToolBar::stDropDownInfo__.0
mov dword [edi + 0xbc], ebp
mov dword [edi + 0xc0], ebx
mov dword [edi + 0xcc], ebx
mov dword [edi + 0xc8], ebx
mov dword [edi + 0xc4], ebx
mov dword [edi + 0xb8], ebx
lea edi, [esi + 0x1c4]
mov ecx, edi
mov byte [esp + 0x198], 8
call fcn.0041b72e
mov dword [edi], vtable.CTrueColorToolBar.0
mov dword [edi + 0xbc], ebp
mov dword [edi + 0xc0], ebx
mov dword [edi + 0xcc], ebx
mov dword [edi + 0xc8], ebx
mov dword [edi + 0xc4], ebx
mov dword [edi + 0xb8], ebx
mov byte [esp + 0x198], 9
call fcn.00412fcd
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x402896
push 0x80004005
call fcn.00402350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0x294], eax
mov byte [esp + 0x198], 0xa
call fcn.00412fcd
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4028ca
push 0x80004005
call fcn.00402350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0x6a4], eax
mov byte [esp + 0x198], 0xb
call fcn.00412fcd
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4028fe
push 0x80004005
call fcn.00402350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi + 0x6b0], eax
lea ecx, [esi + 0x6b8]
mov byte [esp + 0x198], 0xc
call fcn.0040f4d9
lea edi, [esi + 0x750]
mov ecx, edi
mov byte [esp + 0x198], 0xd
call fcn.00416b35
mov dword [edi], vtable.CComboBox.0
lea edi, [esi + 0x7a4]
mov ecx, edi
mov byte [esp + 0x198], 0xe
call fcn.00416b35
mov dword [edi], vtable.CComboBox.0
lea edi, [esi + 0x7f8]
mov ecx, edi
mov byte [esp + 0x198], 0xf
call fcn.00416b35
mov dword [edi], vtable.CListCtrl.0
lea edi, [esi + 0x84c]
mov ecx, edi
mov byte [esp + 0x198], 0x10
call fcn.00416b35
mov dword [edi], vtable.CListCtrl.0
push str.In_CFileClientDlg
push 0x21
push str..FileClientDlg.cpp
push 2
mov ecx, str.CFileClientDlg::CFileClientDlg
mov byte [esp + 0x1a8], 0x11
call fcn.0040d010
push str.In_CFileClientDlg
push 0x21
push str..FileClientDlg.cpp
push 2
mov ecx, str.CFileClientDlg::CFileClientDlg
call fcn.0040cd30
push 0x100000
call fcn.00431aa9
add esp, 0x24
lea ecx, [esp + 0x14]
push ecx
push ebx
push ebx
push 0xa
push ebx
mov dword [esi + 0x8a4], eax
mov dword [esi + 0x8a8], ebx
mov dword [esi + 0x8a0], ebx
mov dword [esp + 0x28], ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderLocation]
test eax, eax
mov ebp, dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
jl 0x402a56
mov eax, dword [esp + 0x14]
push 0x110
push 0x160
lea edx, [esp + 0x34]
push edx
push 0x80
push eax
call ebp
test eax, eax
jl 0x402a56
push str.SHGetFileInfo_success_
push 0x31
push str..FileClientDlg.cpp
push 2
mov ecx, str.CFileClientDlg::CFileClientDlg
call fcn.0040d010
push str.SHGetFileInfo_success_
push 0x31
push str..FileClientDlg.cpp
push 2
mov ecx, str.CFileClientDlg::CFileClientDlg
call fcn.0040cd30
add esp, 0x20
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.SHELL32.dll_ILFree]
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
mov edi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x80
push eax
call edi
push 0x4000
push 0x160
lea edx, [esp + 0x34]
push edx
push ebx
push ebx
mov dword [esi + 0x6b4], eax
call ebp
push eax
call fcn.00410cd7
push 0x4001
push 0x160
mov dword [esi + 0x698], eax
lea eax, [esp + 0x34]
push eax
push ebx
push ebx
call ebp
push eax
call fcn.00410cd7
mov dword [esi + 0x69c], eax
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x82
push eax
call edi
mov ecx, dword [esi + 0x698]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
mov dword [esi + 0x6a0], eax
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x82
push eax
call edi
mov ecx, dword [esi + 0x69c]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x83
push eax
call edi
mov ecx, dword [esi + 0x698]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x83
push eax
call edi
mov ecx, dword [esi + 0x69c]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x84
push eax
call edi
mov ecx, dword [esi + 0x698]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x84
push eax
call edi
mov ecx, dword [esi + 0x69c]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x85
push eax
call edi
mov ecx, dword [esi + 0x698]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x85
push eax
call edi
mov ecx, dword [esi + 0x69c]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x86
push eax
call edi
mov ecx, dword [esi + 0x698]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
call fcn.0041d2c4
call fcn.0041d2c4
mov eax, dword [eax + 0xc]
push 0x86
push eax
call edi
mov ecx, dword [esi + 0x69c]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.0041d2c4
mov edx, dword [eax + 0x78]
mov ecx, dword [edx]
call fcn.0040b130
xor eax, eax
push eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
call sub.WS2_32.dll_inet_ntoa
cmp eax, ebx
jne 0x402cb8
xor edi, edi
jmp 0x402ccb
mov edi, eax
lea edx, [edi + 1]
lea ecx, [ecx]
mov cl, byte [edi]
add edi, 1
cmp cl, bl
jne 0x402cc0
sub edi, edx
push edi
push eax
lea ecx, [esi + 0x6a4]
call fcn.00402100
push 0x400
lea edi, [esi + 0x298]
push ebx
push edi
call fcn.00435f30
mov eax, dword [esi + 0x8a8]
add esp, 0xc
cmp eax, ebx
jbe 0x402d0e
add eax, 0xffffffff
push eax
mov eax, dword [esi + 0x8a4]
add eax, 1
push eax
push edi
call fcn.00438d50
add esp, 0xc
push str.Out_CFileClientDlg
push 0x7a
push str..FileClientDlg.cpp
push 2
mov ecx, str.CFileClientDlg::CFileClientDlg
mov dword [esi + 0x80], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x98], ebx
mov dword [esi + 0x9c], ebx
mov byte [esi + 0x74], bl
call fcn.0040d010
push str.Out_CFileClientDlg
push 0x7a
push str..FileClientDlg.cpp
push 2
mov ecx, str.CFileClientDlg::CFileClientDlg
call fcn.0040cd30
add esp, 0x20
mov eax, esi
mov ecx, dword [esp + 0x190]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x17c]
xor ecx, esp
call fcn.00431676
add esp, 0x18c
ret