Function at 0x412e70
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x41712a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2d8
mov eax, dword [0x4251a4]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0
push 0
push 1
mov ebx, ecx
push ebx
push str.void___thiscall_CCmdReceiverWnd::OnShellCommand_const_wchar_t__
push 0x41d850
xor eax, ebp
push str.void___thiscall_CCmdReceiverWnd::OnShellCommand_const_wchar_t__
lea ecx, [esp + 0x80]
mov dword [esp + 0x2f8], eax
call fcn.00408360
mov dword [esp + 0x2ec], 0
push esi
lea ecx, [esp + 0x80]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
mov byte [esp + 0x2ec], 1
lea ecx, [esp + 0x7c]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::length_void_const]
mov esi, eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x80]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::iterator___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::begin_void_]
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x80]
mov edi, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::iterator___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::end_void_]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x80]
mov dword [esp + 0x14], eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::iterator___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::begin_void_]
mov ecx, dword [sym.imp.MSVCR71.dll_tolower]
mov edx, dword [edi]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [ecx]
push edx
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.004039e0
add esp, 0x14
push str._quitshell
lea ecx, [esp + 0x80]
call dword [sym.imp.MSVCP71.dll_public:_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::compare_wchar_t_const__const]
test eax, eax
jne 0x412f7c
mov edx, dword [ebx + 4]
push eax
push eax
push 0x10
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4131f8
test esi, esi
jle 0x4131f8
push 0
lea ecx, [esp + 0x80]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator___unsigned_int_]
cmp word [eax], 0x22
jne 0x4131f8
push 1
push 0x41c868
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_wchar_t_const___unsigned_int_const]
mov edi, eax
test edi, edi
jle 0x4131f8
lea eax, [edi - 1]
push eax
push 1
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0x88]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_]
mov byte [esp + 0x2ec], 2
sub esi, edi
sub esi, 2
push esi
add edi, 2
push edi
lea edx, [esp + 0xbc]
push edx
lea ecx, [esp + 0x88]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_]
mov byte [esp + 0x2ec], 3
push 0x41d7f8
call fcn.00402d00
add esp, 4
test eax, eax
jne 0x4130d9
push 1
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
mov byte [esp + 0x2f0], 4
push str.__param_:
lea ecx, [esp + 0xa0]
push ecx
lea ecx, [esp + 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
mov byte [esp + 0x2f4], 5
push str._path_:
push ebx
push 0x41d7f8
call fcn.00407790
add esp, 8
mov ecx, eax
call fcn.0040f3e0
mov esi, eax
mov byte [esp + 0x2f4], 6
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
mov ecx, esi
call fcn.0040d460
mov byte [esp + 0x2f4], 4
lea ecx, [esp + 0x48]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ecx, esi
call fcn.0040f3e0
mov esi, eax
mov byte [esp + 0x2f0], 7
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
mov ecx, esi
call fcn.0040d460
mov byte [esp + 0x2f0], 3
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ecx, esi
call fcn.0040f3a0
lea ecx, [esp + 0x98]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::length_void_const]
test eax, eax
jbe 0x4131ce
lea ecx, [esp + 0xb4]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::length_void_const]
test eax, eax
jbe 0x4131ce
mov word [esp + 0xd0], 0
xor eax, eax
mov ecx, 0x81
lea edi, [esp + 0xd2]
rep stosd dword es:[edi], eax
push 0x104
lea ecx, [esp + 0x9c]
stosw word es:[edi], ax
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
lea edx, [esp + 0xd8]
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
push 0x41ce6c
lea eax, [esp + 0xd4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [esp + 0xd0]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [esp + 0x98]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x4131ce
push str.ShellCommand
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x4131c7
lea ecx, [esp + 0xb4]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
lea ecx, [esp + 0x14]
call fcn.0040c250
mov byte [esp + 0x2ec], 8
mov eax, dword [eax]
push eax
call esi
mov byte [esp + 0x2ec], 3
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov byte [esp + 0x2ec], 2
lea ecx, [esp + 0xb4]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov byte [esp + 0x2ec], 1
lea ecx, [esp + 0x98]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov byte [esp + 0x2ec], 0
lea ecx, [esp + 0x7c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov dword [esp + 0x2ec], 0xffffffff
lea ecx, [esp + 0x64]
call fcn.00408660
mov ecx, dword [esp + 0x2e4]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x2dc]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00414f09
mov esp, ebp
pop ebp
ret 4