Function at 0x41e220
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, eax
cmp dword [esi + 0x18], 8
lea ebx, [esi + 4]
jb 0x41e237
mov eax, dword [ebx]
jmp 0x41e239
mov eax, ebx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41e25f
push esi
mov esi, dword [ebp + 8]
lea ecx, [esi + 8]
call dword [sym.imp.MSVCP80.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__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
mov dword [esi + 4], 1
xor eax, eax
jmp 0x41e34d
push edi
xor edi, edi
cmp dword [ebp + 0xc], edi
je 0x41e347
mov eax, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
push dword [eax]
mov ecx, esi
push 0x5c
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_wchar_t__unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
cmp dword [ecx], eax
je 0x41e340
push eax
push edi
lea eax, [ebp - 0x1c]
push eax
mov ecx, esi
call dword [sym.imp.MSVCP80.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_]
cmp dword [eax + 0x18], 8
jb 0x41e2a3
mov eax, dword [eax + 4]
jmp 0x41e2a6
add eax, 4
push edi
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
lea ecx, [ebp - 0x1c]
mov edi, eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
test edi, edi
je 0x41e2df
cmp edi, 0x50
je 0x41e2df
cmp edi, 0xb7
je 0x41e2df
test edi, edi
jle 0x41e2db
and edi, 0xffff
or edi, 0x80070000
mov eax, edi
jmp 0x41e34c
cmp dword [esi + 0x18], 8
jb 0x41e2e7
mov ebx, dword [ebx]
push 0
push 0x80
xor edi, edi
inc edi
push edi
push 0
push 3
push 0xc0000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x41e325
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x41e317
call esi
jmp 0x41e34c
call esi
and eax, 0xffff
or eax, 0x80070000
jmp 0x41e34c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
mov esi, dword [ebp + 8]
lea ecx, [esi + 8]
call dword [sym.imp.MSVCP80.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__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
mov dword [esi + 4], edi
xor eax, eax
jmp 0x41e34c
mov eax, 0x80070057
jmp 0x41e34c
mov eax, 0x80070002
pop edi
pop esi
pop ebx
leave
ret 8