Function at 0x406e00
Capabilities:
Create directory

Disassembly:
push 0xffffffffffffffff
push 0x40fb09
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x238
mov eax, dword [0x41609c]
push esi
xor esi, esi
mov dword [esp + 0x238], eax
mov dword [esp + 8], esi
lea ecx, [esp + 4]
mov dword [esp + 0x244], esi
call dword [0x411420]
push 0x104
lea eax, [esp + 0x138]
push eax
push esi
mov byte [esp + 0x250], 1
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
push eax
lea ecx, [esp + 8]
mov byte [esp + 0x248], 2
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_1]
lea ecx, [esp + 8]
mov byte [esp + 0x244], 1
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
push 0x5c
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::ReverseFind]
cmp eax, 0xffffffff
je 0x406ed9
inc eax
push eax
lea edx, [esp + 0xc]
push edx
lea ecx, [esp + 0xc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Left]
push eax
lea ecx, [esp + 8]
mov byte [esp + 0x248], 3
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_1]
lea ecx, [esp + 8]
mov byte [esp + 0x244], 1
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 8]
call dword [0x4112f4]
lea ecx, [esp + 0x250]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::IsEmpty]
test al, al
jne 0x406fcd
push ebx
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::TrimRight]
push 1
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Right]
push 0x412490
mov ecx, eax
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [esp + 0xc]
inc bl
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
test bl, bl
pop ebx
lea ecx, [esp + 4]
je 0x406fa3
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetLength]
dec eax
push eax
push esi
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Mid]
lea ecx, [esp + 0xc]
push ecx
mov ecx, eax
mov byte [esp + 0x248], 4
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call sub.MFC71.DLL_CFile::GetStatus
lea ecx, [esp + 8]
mov byte [esp + 0x244], 1
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
jmp 0x406fb4
lea edx, [esp + 0xc]
push edx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call sub.MFC71.DLL_CFile::GetStatus
cmp byte [esp + 0x2c], 0x10
je 0x406fcd
push esi
lea ecx, [esp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, dword [esp + 0x24c]
lea eax, [esp + 4]
push eax
mov ecx, esi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
lea ecx, [esp + 4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esp + 0x250]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ecx, dword [esp + 0x23c]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x238]
mov eax, esi
pop esi
call fcn.0040e9e6
add esp, 0x244
ret 8