Function at 0x402351
Capabilities:
Create directory

Disassembly:
push 0x11c
mov eax, 0x4086fb
call fcn.00407f5f
mov ebx, ecx
mov dword [ebp - 0x108], ebx
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x80]
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 0xe4], edi
and dword [eax], 0
mov dword [ebp - 0x10c], eax
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_class_Cmm::CStringT_wchar_t__const__]
and dword [ebp - 4], 0
lea eax, [edi + 0x1c]
push eax
lea ecx, [ebp - 0xb8]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_class_Cmm::CStringT_wchar_t__const__]
lea eax, [edi + 0x38]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0xd4]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_class_Cmm::CStringT_wchar_t__const__]
push 2
pop ecx
push 0
mov dword [ebp - 0xd8], ecx
lea esi, [edi + 0x54]
mov byte [ebp - 4], cl
mov ecx, esi
push 0x40c4bc
call dword [sym.imp.Cmmlib.dll_public:_wchar_t____thiscall_Cmm::CStringT_wchar_t_::Find_wchar_t_const___int_const]
test eax, eax
je 0x4023d8
xor ecx, ecx
inc ecx
xor esi, esi
jmp 0x402424
push 0
push 0x40c4c4
mov ecx, esi
call dword [sym.imp.Cmmlib.dll_public:_unsigned_int___thiscall_Cmm::CStringT_wchar_t_::find_wchar_t_const___unsigned_int_const]
test eax, eax
je 0x4023ef
xor esi, esi
jmp 0x40242a
push 0
push 0x40c4cc
mov ecx, esi
call dword [sym.imp.Cmmlib.dll_public:_unsigned_int___thiscall_Cmm::CStringT_wchar_t_::find_wchar_t_const___unsigned_int_const]
test eax, eax
je 0x402409
push 3
pop eax
mov ecx, eax
jmp 0x4023d4
push 0
push 0x40c4d4
mov ecx, esi
call dword [sym.imp.Cmmlib.dll_public:_unsigned_int___thiscall_Cmm::CStringT_wchar_t_::find_wchar_t_const___unsigned_int_const]
xor esi, esi
test eax, eax
push 4
mov ecx, esi
pop eax
cmovne ecx, eax
mov dword [ebp - 0xd8], ecx
lea ecx, [ebp - 0x48]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_void_]
push 3
pop eax
mov byte [ebp - 4], al
mov eax, dword [ebp - 0xd8]
sub eax, 1
je 0x4024a6
sub eax, 1
je 0x40249f
sub eax, 1
je 0x402498
sub eax, 1
je 0x402491
push 0x40a970
lea ecx, [ebp - 0x9c]
or esi, 0xffffffff
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_char_const__]
push 4
pop eax
mov byte [ebp - 4], al
lea eax, [ebp - 0x9c]
mov ecx, dword [ebx + 0xb0]
push eax
push 0
push esi
lea eax, [ebp - 0x80]
push eax
call fcn.00404e39
lea ecx, [ebp - 0x9c]
jmp 0x402885
push 0x40c4d4
jmp 0x4024ab
push 0x40c4cc
jmp 0x4024ab
push 0x40c4c4
jmp 0x4024ab
push 0x40c4bc
lea ecx, [ebp - 0x48]
call dword [sym.imp.Cmmlib.dll_public:_class_Cmm::CStringT_wchar_t_____thiscall_Cmm::CStringT_wchar_t_::operator_wchar_t_const__]
lea eax, [ebp - 0xd4]
mov dword [ebp - 0xec], esi
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_class_Cmm::CStringT_wchar_t__const__]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call dword [sym.imp.Cmmlib.dll_public:_int___thiscall_Cmm::CStringT_wchar_t_::IsEmpty_void_const]
test eax, eax
je 0x402537
push esi
push 0x40a9d4
lea ecx, [ebp - 0xb8]
call dword [sym.imp.Cmmlib.dll_public:_unsigned_int___thiscall_Cmm::CStringT_wchar_t_::find_wchar_t_const___unsigned_int_const]
push eax
lea eax, [ebp - 0x128]
push eax
lea ecx, [ebp - 0xb8]
call dword [sym.imp.Cmmlib.dll_public:_class_Cmm::CRangeT_wchar_t_const_____thiscall_Cmm::CStringT_wchar_t_::Left_unsigned_int_]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x2c]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::Assign_wchar_t_const___unsigned_int_]
lea ecx, [ebp - 0x2c]
call dword [sym.imp.Cmmlib.dll_public:_wchar_t_const____thiscall_Cmm::CStringT_wchar_t_::operator_wchar_t_const__void_const]
push eax
call dword [sym.imp.Cmmlib.dll_cmm_fs_rmdirs]
pop ecx
lea ecx, [ebp - 0x2c]
call dword [sym.imp.Cmmlib.dll_public:_wchar_t_const____thiscall_Cmm::CStringT_wchar_t_::operator_wchar_t_const__void_const]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebx + 0x8c]
call dword [0x40a080]
lea ecx, [ebp - 0x2c]
call dword [sym.imp.Cmmlib.dll_public:_unsigned_int___thiscall_Cmm::CStringT_wchar_t_::GetLength_void_const]
cmp eax, 0x104
jbe 0x402595
push 0x40a970
lea ecx, [ebp - 0x9c]
call dword [sym.imp.Cmmlib.dll_public:_void___thiscall_Cmm::CStringT_wchar_t_::constructor_char_const__]
lea eax, [ebp - 0x9c]
mov byte [ebp - 4], 6
mov ecx, dword [ebx + 0xb0]
push eax
push esi
push esi
lea eax, [ebp - 0x80]
push eax
call fcn.00404e39
lea ecx, [ebp - 0x9c]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
jmp 0x402882
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xdc], esi
mov byte [ebp - 4], 8
cmp dword [ebx + 8], esi
jne 0x4025b4
mov dword [ebx + 0xdc], 1
cmp dword [ebx + 0xdc], esi
je 0x4025d0
lea eax, [ebp - 0x48]
push eax
push ecx
push edi
mov ecx, ebx
call fcn.004028cf
mov esi, eax
jmp 0x40286c
mov dword [ebp - 0xe8], esi
mov byte [ebp - 4], 9
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x4028bf
mov eax, dword [ecx]
lea edx, [ebp - 0xe8]
push edx
push ecx
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [0x40a3e8]
call esi
cmp dword [ebp - 0xe8], 0
je 0x402804
push 0x4650
push 1
lea eax, [ebp - 0x64]
mov ecx, ebx
push eax
call fcn.004032bd
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xb8]
mov edi, dword [ebp - 0xe8]
call dword [sym.imp.Cmmlib.dll_public:_wchar_t_const____thiscall_Cmm::CStringT_wchar_t_::operator_wchar_t_const__void_const]
push eax
lea ecx, [ebp - 0x100]
call fcn.00401523
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0xb
mov esi, dword [edi]
push ecx
xor ecx, ecx
push ecx
push ecx
push ecx
push dword [eax]
mov ecx, dword [esi + 0x3c]
push edi
call dword [0x40a3e8]
call dword [esi + 0x3c]
mov byte [ebp - 4], 0xa
push dword [ebp - 0x100]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea eax, [ebp - 0x64]
mov ecx, ebx
push eax
call fcn.0040339a
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x4027f5
mov ecx, dword [eax]
lea edx, [ebp - 0xdc]
push edx
push eax
mov esi, dword [ecx + 0x44]
mov ecx, esi
call dword [0x40a3e8]
call esi
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x4027f5
and dword [ebp - 0xf8], 0
lea edx, [ebp - 0xf8]
mov ecx, dword [eax]
push edx
push eax
mov esi, dword [ecx + 0x24]
mov ecx, esi
call dword [0x40a3e8]
call esi
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x4027f5
mov ecx, dword [ebp - 0xf8]
xor edx, edx
inc edx
mov dword [ebx + 0xa8], ecx
xor esi, esi
mov dword [ebp - 0xfc], edx
mov dword [ebp - 0xd8], esi
cmp ecx, edx
jl 0x4027ef
and dword [ebp - 0xf4], 0
push 3
pop ecx
mov word [ebp - 0x120], cx
mov dword [ebp - 0x118], edx
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 0xc
mov ebx, dword [eax]
lea esi, [ebp - 0x120]
push ecx
sub esp, 0x10
mov edi, esp
mov ecx, dword [ebx + 0x30]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [0x40a3e8]
call dword [ebx + 0x30]
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x40277e
and dword [ebp - 0xe0], 0
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0xe0]
mov ecx, dword [eax]
push edx
push eax
mov esi, dword [ecx + 0x2c]
mov ecx, esi
call dword [0x40a3e8]
call esi
mov eax, dword [ebp - 0xe0]
test eax, eax
jne 0x4027af
lea ecx, [ebp - 0xe0]
call fcn.004037ea
mov esi, dword [ebp - 0xd8]
lea ecx, [ebp - 0xf4]
call fcn.004037ea
mov edx, dword [ebp - 0xfc]
inc edx
mov dword [ebp - 0xfc], edx
cmp edx, dword [ebp - 0xf8]
jg 0x4027e9
mov eax, dword [ebp - 0xdc]
jmp 0x4026fd
mov ecx, dword [eax]
lea edx, [ebp - 0x104]
push edx
push eax
mov esi, dword [ecx + 0x44]
mov ecx, esi
call dword [0x40a3e8]
call esi
cmp dword [ebp - 0x104], 0xffffffff
lea ecx, [ebp - 0xe0]
je 0x402779
mov esi, dword [ebp - 0xd8]
inc esi
mov dword [ebp - 0xd8], esi
call fcn.004037ea
jmp 0x402784
mov ebx, dword [ebp - 0x108]
mov dword [ebx + 0xac], esi
lea ecx, [ebp - 0x64]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
mov edi, dword [ebp - 0xe4]
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 8
call fcn.004037ea
mov ecx, dword [ebx + 0xb0]
lea eax, [ebp - 0x2c]
push eax
push dword [ebx + 0xac]
lea eax, [ebp - 0x80]
push 0
push eax
call fcn.00404e39
push dword [ebp - 0xdc]
lea eax, [ebp - 0x48]
push dword [ebp - 0xf0]
push ecx
push ecx
push eax
lea eax, [ebp - 0x80]
mov ecx, ebx
push eax
call fcn.00402d1b
mov ecx, dword [ebp - 0x10c]
mov dword [ecx], eax
test eax, eax
jne 0x402866
mov dword [ebx + 0xdc], 1
jmp 0x4025bc
mov esi, dword [ebp - 0xec]
lea ecx, [ebp - 0xdc]
call fcn.004037ea
lea ecx, [ebp - 0xf0]
call fcn.004037ea
lea ecx, [ebp - 0x2c]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
lea ecx, [ebp - 0x48]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
lea ecx, [ebp - 0xd4]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
lea ecx, [ebp - 0xb8]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
lea ecx, [ebp - 0x80]
call dword [sym.imp.Cmmlib.dll_public_virtual:_void___thiscall_Cmm::CStringT_wchar_t_::destructor_void_]
mov eax, esi
call fcn.00407f1a
ret 8
push 0x80004003
call fcn.00407a40
int3