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

Disassembly:
push 0xffffffffffffffff
push 0x5202ba
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5c5c30]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
xor ebp, ebp
mov dword [esp + 0x6c], ebp
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
push eax
mov dword [esp + 0x2c], eax
call fcn.0040c900
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x1c], edi
mov byte [esp + 0x6c], 1
mov eax, dword [edi - 0xc]
lea esi, [eax - 1]
cmp esi, ebp
jl 0x4082db
cmp esi, eax
jle 0x4082fb
push str._iChar___0____iChar___GetLength___
push ebp
push 0x1fe
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x4082fb
int3
cmp esi, ebp
jl 0x408833
cmp esi, dword [edi - 0xc]
jg 0x408833
movzx eax, word [edi + esi*2]
cmp ax, 0x5c
je 0x408325
push 0x5c
lea ecx, [esp + 0x20]
call fcn.0040b2d0
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov byte [esp + 0x6c], 3
call fcn.00431fc0
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x408374
push str.__atl_condVal
push ebp
push 0xe2
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x40836a
int3
push 0x80004005
call fcn.004011e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x6c], 4
mov eax, dword [edi - 0xc]
cmp eax, ebp
mov byte [esp + 0x17], 0
jle 0x4084d0
lea esp, [esp]
test ebp, ebp
jl 0x4083a8
cmp ebp, eax
jle 0x4083c9
push str._iChar___0____iChar___GetLength___
push 0
push 0x1fe
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x4083c9
int3
test ebp, ebp
jl 0x408833
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi - 0xc]
cmp ebp, ecx
jg 0x408833
movzx eax, word [esi + ebp*2]
cmp ax, 0x5c
je 0x40844f
cmp ebp, ecx
jle 0x40840f
push str._iChar___0____iChar___GetLength___
push 0
push 0x1fe
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x40840f
int3
cmp ebp, dword [esi - 0xc]
jg 0x408833
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx ebx, word [ecx + ebp*2]
mov edi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
lea esi, [edi + 1]
sub eax, esi
or eax, ecx
jge 0x408449
push esi
lea ecx, [esp + 0x1c]
call fcn.0040c8b0
mov edx, dword [esp + 0x18]
mov word [edx + edi*2], bx
jmp 0x40848d
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.0040b900
mov edx, dword [esp + 0x18]
mov edi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
lea esi, [edi + 1]
sub eax, esi
or eax, ecx
jge 0x408487
push esi
lea ecx, [esp + 0x1c]
call fcn.0040c8b0
mov edx, dword [esp + 0x18]
mov word [edx + edi*2], 0x5c
test esi, esi
jge 0x4084b2
push str.nNewLength___0
push 0
push 0x24a
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x4084b2
int3
push esi
lea ecx, [esp + 0x1c]
call fcn.0040c0e0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx - 0xc]
add ebp, 1
cmp ebp, eax
jl 0x4083a0
xor ebp, ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
lea esi, [esp + 0x38]
lea ecx, [esp + 0x50]
mov byte [esp + 0x6c], 5
call fcn.0040b8c0
mov edi, eax
mov bl, 6
mov byte [esp + 0x6c], bl
mov edx, dword [esp + 0x2c]
cmp edx, dword [edi]
je 0x40856f
push 3
lea ecx, [esp + 0x24]
call fcn.0050abe0
mov byte [esp + 0x6c], 7
mov esi, dword [esp + 0x2c]
cmp esi, ebp
je 0x408557
cmp dword [esi], 0xfffffffd
je 0x408557
cmp dword [esi], ebp
je 0x408536
nop
mov eax, dword [esi]
lea ecx, [esp + 0x2c]
cmp eax, ecx
je 0x408532
cmp dword [eax + 4], ebp
lea esi, [eax + 4]
jne 0x408520
cmp dword [esi], ebp
jne 0x40854d
push 0xb2
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCincludexutility
push str.ITERATOR_LIST_CORRUPTED_
call fcn.0050ae00
add esp, 0xc
mov edx, dword [esp + 0x30]
mov dword [esi], edx
mov dword [esp + 0x2c], ebp
mov esi, dword [edi]
lea ecx, [esp + 0x2c]
call fcn.00404250
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], bl
call fcn.0050ac20
mov eax, dword [edi + 8]
push 3
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], eax
mov byte [esp + 0x70], 5
call fcn.0050abe0
mov byte [esp + 0x6c], 8
mov esi, dword [esp + 0x38]
cmp esi, ebp
je 0x4085d7
cmp dword [esi], 0xfffffffd
je 0x4085d7
cmp dword [esi], ebp
je 0x4085b6
lea esp, [esp]
mov eax, dword [esi]
lea ecx, [esp + 0x38]
cmp eax, ecx
je 0x4085b2
cmp dword [eax + 4], ebp
lea esi, [eax + 4]
jne 0x4085a0
cmp dword [esi], ebp
jne 0x4085cd
push 0xb2
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCincludexutility
push str.ITERATOR_LIST_CORRUPTED_
call fcn.0050ae00
add esp, 0xc
mov edx, dword [esp + 0x3c]
mov dword [esi], edx
mov dword [esp + 0x38], ebp
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 5
call fcn.0050ac20
lea esi, [esp + 0x38]
lea ecx, [esp + 0x50]
call fcn.0040b8e0
mov esi, eax
mov byte [esp + 0x6c], 0xa
mov eax, dword [esp + 0x2c]
cmp eax, ebp
je 0x408605
cmp eax, dword [esi]
je 0x408659
push 0xee
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push str.vector_iterators_incompatible
call fcn.0050ae00
add esp, 0xc
push str.__Standard_C_Libraries_Invalid_Argument___0_
push ebp
push 0xef
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x40863c
int3
push ebp
push 0xef
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push str.std::_Vector_const_iterator_class_ATL::CStringT_wchar_t_class_StrTraitMFC_wchar_t_class_ATL::ChTraitsCRT_wchar_t______class_std::allocator_class_ATL::CStringT_wchar_t_class_StrTraitMFC_wchar_t_class_ATL::ChTraitsCRT_wchar_t_________::_Compat
push str._invalid_argument_
call fcn.004d13a0
add esp, 0x14
mov eax, dword [esp + 0x34]
cmp eax, dword [esi + 8]
push 3
lea ecx, [esp + 0x24]
setne bl
mov byte [esp + 0x70], 5
call fcn.0050abe0
mov byte [esp + 0x6c], 0xb
mov esi, dword [esp + 0x38]
cmp esi, ebp
je 0x4086c7
cmp dword [esi], 0xfffffffd
je 0x4086c7
cmp dword [esi], ebp
je 0x4086a6
lea esp, [esp]
mov eax, dword [esi]
lea ecx, [esp + 0x38]
cmp eax, ecx
je 0x4086a2
cmp dword [eax + 4], ebp
lea esi, [eax + 4]
jne 0x408690
cmp dword [esi], ebp
jne 0x4086bd
push 0xb2
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCincludexutility
push str.ITERATOR_LIST_CORRUPTED_
call fcn.0050ae00
add esp, 0xc
mov edx, dword [esp + 0x3c]
mov dword [esi], edx
mov dword [esp + 0x38], ebp
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 5
call fcn.0050ac20
test bl, bl
je 0x40883d
mov ecx, dword [esp + 0x2c]
cmp ecx, ebp
je 0x4086f3
mov eax, dword [esp + 0x34]
cmp eax, dword [ecx + 8]
jb 0x4086f3
cmp dword [ecx + 0xc], eax
ja 0x408742
push 0x63
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push str.vector_iterator_not_dereferencable
call fcn.0050ae00
add esp, 0xc
push str.__Standard_C_Libraries_Out_of_Range___0_
push ebp
push 0x64
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x408724
int3
push ebp
push 0x64
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push 0x5aa9f8
push str._out_of_range_
call fcn.004d13a0
mov eax, dword [esp + 0x48]
add esp, 0x14
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4087c5
mov ecx, dword [esp + 0x2c]
cmp ecx, ebp
je 0x408765
mov eax, dword [esp + 0x34]
cmp eax, dword [ecx + 8]
jb 0x408765
cmp dword [ecx + 0xc], eax
ja 0x4087b4
push 0x63
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push str.vector_iterator_not_dereferencable
call fcn.0050ae00
add esp, 0xc
push str.__Standard_C_Libraries_Out_of_Range___0_
push ebp
push 0x64
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x408796
int3
push ebp
push 0x64
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCinclude_vector
push 0x5aa9f8
push str._out_of_range_
call fcn.004d13a0
mov eax, dword [esp + 0x48]
add esp, 0x14
mov eax, dword [eax]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
setne byte [esp + 0x17]
lea edi, [esp + 0x44]
lea eax, [esp + 0x2c]
call fcn.0040b9b0
push 3
lea ecx, [esp + 0x28]
call fcn.0050abe0
mov byte [esp + 0x6c], 9
mov esi, dword [esp + 0x44]
cmp esi, ebp
je 0x40882a
cmp dword [esi], 0xfffffffd
je 0x40882a
cmp dword [esi], ebp
je 0x408809
mov eax, dword [esi]
lea ecx, [esp + 0x44]
cmp eax, ecx
je 0x408805
cmp dword [eax + 4], ebp
lea esi, [eax + 4]
jne 0x4087f3
cmp dword [esi], ebp
jne 0x408820
push 0xb2
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCincludexutility
push str.ITERATOR_LIST_CORRUPTED_
call fcn.0050ae00
add esp, 0xc
mov edx, dword [esp + 0x48]
mov dword [esi], edx
mov dword [esp + 0x44], ebp
lea ecx, [esp + 0x24]
jmp 0x4085db
push 0x80070057
call fcn.004011e0
push 3
lea ecx, [esp + 0x28]
mov byte [esp + 0x70], 4
call fcn.0050abe0
mov byte [esp + 0x6c], 0xc
mov esi, dword [esp + 0x2c]
cmp esi, ebp
je 0x40889a
cmp dword [esi], 0xfffffffd
je 0x40889a
cmp dword [esi], ebp
je 0x408879
mov eax, dword [esi]
lea ecx, [esp + 0x2c]
cmp eax, ecx
je 0x408875
cmp dword [eax + 4], ebp
lea esi, [eax + 4]
jne 0x408863
cmp dword [esi], ebp
jne 0x408890
push 0xb2
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VCincludexutility
push str.ITERATOR_LIST_CORRUPTED_
call fcn.0050ae00
add esp, 0xc
mov edx, dword [esp + 0x30]
mov dword [esi], edx
mov dword [esp + 0x2c], ebp
lea ecx, [esp + 0x24]
mov byte [esp + 0x6c], 4
call fcn.0050ac20
mov byte [esp + 0x6c], 3
mov esi, dword [esp + 0x18]
add esi, 0xfffffff0
cmp dword [esi + 0xc], ebp
lea edi, [esi + 0xc]
jne 0x4088d9
push str.nRefs___0
push ebp
push 0x6b
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x4088d9
int3
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4088ef
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x70], 1
call fcn.0040b830
mov byte [esp + 0x6c], 0
mov esi, dword [esp + 0x1c]
add esi, 0xfffffff0
cmp dword [esi + 0xc], ebp
lea edi, [esi + 0xc]
jne 0x40892f
push str.nRefs___0
push ebp
push 0x6b
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x40892f
int3
or edx, 0xffffffff
lock xadd dword [edi], edx
dec edx
test edx, edx
jg 0x408945
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov edi, dword [esp + 0x28]
lea esi, [edi + 0xc]
mov dword [esp + 0x6c], 0xffffffff
cmp dword [esi], ebp
jne 0x408975
push str.nRefs___0
push ebp
push 0x6b
push str.C:Program_Files__x86_Microsoft_Visual_Studio_8VC_atlmfcinclude_atlsimpstr.h
push 2
call fcn.004d4350
add esp, 0x14
cmp eax, 1
jne 0x408975
int3
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x40898b
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 4