Function at 0x40e447
Capabilities:
Delete directory

Disassembly:
push 0x40
mov eax, 0x411d99
call fcn.0040f882
mov esi, ecx
mov dword [ebp - 0x14], esi
lea eax, [ebp - 0x18]
push eax
call fcn.0040ef14
mov edi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
and dword [ebp - 4], 0
lea eax, [esi + 0x44]
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call edi
push dword [esi + 0x40]
lea eax, [ebp - 0x1c]
push eax
call fcn.0040f28c
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
lea ecx, [esi + 0x4c]
mov byte [ebp - 4], 1
call dword [sym.imp.Common.dll_public:_class_CTXStringW____thiscall_CTXStringW::operator_class_CTXStringW_const__]
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call edi
push str.HandleFileMoveForConfig
mov ebx, str.StorageTool
push ebx
push 2
mov edi, str.func
push edi
push 0xc89
mov esi, str.file
push esi
call fcn.00407b33
add esp, 0x18
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
push 0x4152a0
push ebx
push 2
push edi
push 0xc8a
push esi
call fcn.00407b33
add esp, 0x18
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
mov ecx, dword [ebp - 0x14]
call fcn.00407637
test eax, eax
jne 0x40e55c
lea eax, [ebp - 0x38]
push eax
push 0x413448
push ebx
push 2
push edi
push 0xc8e
push esi
mov dword [ebp - 0x38], str.CheckDestPath
call fcn.004011f4
mov edi, dword [ebp - 0x14]
mov ecx, dword [edi + 0x54]
mov eax, dword [ecx]
add esp, 0x1c
xor esi, esi
push esi
push esi
push esi
push esi
push esi
push 0xfffffffffffffffd
pop ebx
push ebx
push 1
call dword [eax]
mov ecx, dword [edi + 0x54]
mov eax, dword [ecx]
push esi
push esi
push esi
push esi
push esi
push ebx
push 5
call dword [eax]
mov esi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::destructor_void_]
jmp 0x40ea10
push ecx
mov dword [ebp - 0x3c], esp
lea eax, [ebp - 0xd]
mov dword [ebp - 0x3c], esp
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040ae3b
lea eax, [ebp - 0x38]
push eax
push 0x413448
push ebx
push 2
push edi
push 0xc9b
push esi
mov byte [ebp - 4], 2
mov dword [ebp - 0x38], 0x4151ac
call fcn.004011f4
add esp, 0x1c
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x54]
lea eax, [ebp - 0x1c]
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x18]
push eax
call fcn.0040d1bf
push eax
push 0x415170
push ebx
push 2
push edi
push 0xc9f
push esi
mov dword [ebp - 0x30], eax
call fcn.00402950
add esp, 0x1c
cmp dword [ebp - 0x30], 1
je 0x40e609
cmp dword [ebp - 0x30], 2
je 0x40e609
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x54]
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x30]
mov edx, dword [ecx]
push 5
call dword [edx]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.0040d548
jmp 0x40e551
lea eax, [ebp - 0x38]
push eax
push 0x413448
push ebx
push 2
push edi
push 0xcad
push esi
mov dword [ebp - 0x38], 0x41515c
call fcn.004011f4
add esp, 0x1c
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x54]
lea eax, [ebp - 0x1c]
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x18]
push eax
call fcn.0040cee3
push eax
push 0x41512c
push ebx
push 2
push edi
push 0xcb1
push esi
mov dword [ebp - 0x34], eax
call fcn.00402950
add esp, 0x1c
cmp dword [ebp - 0x34], 1
je 0x40e68d
cmp dword [ebp - 0x34], 2
je 0x40e68d
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x54]
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x34]
jmp 0x40e5f2
lea eax, [ebp - 0x20]
push eax
call fcn.0040ed39
pop ecx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call dword [sym.imp.Common.dll_public:_bool___thiscall_CTXStringW::IsEmpty_void_const]
test al, al
jne 0x40e78d
lea eax, [ebp - 0x38]
push eax
push 0x413448
push ebx
push 2
push edi
push 0xcc1
push esi
mov dword [ebp - 0x38], 0x41525c
call fcn.004011f4
add esp, 0x1c
push str.UserDataInfo.ini
lea ecx, [ebp - 0x20]
call dword [0x41307c]
push ecx
lea eax, [ebp - 0x20]
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
call fcn.004073cb
pop ecx
lea ecx, [ebp - 0x28]
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_void_]
mov eax, dword [ebp - 0x14]
push dword [eax + 0x40]
lea eax, [ebp - 0x28]
push 0x414248
push eax
mov byte [ebp - 4], 4
call dword [sym.imp.Common.dll_public:_void___cdecl_CTXStringW::Format_wchar_t_const__]
add esp, 0xc
lea ecx, [ebp - 0x20]
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
lea ecx, [ebp - 0x28]
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
push str.UserDataSavePathType
push str.UserDataSet
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, dword [ebp - 0x14]
add ecx, 0x44
call dword [sym.imp.Common.dll_public:_bool___thiscall_CTXStringW::IsEmpty_void_const]
lea ecx, [ebp - 0x20]
test al, al
je 0x40e75c
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
push 0x413658
jmp 0x40e770
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
mov ecx, dword [ebp - 0x14]
push eax
add ecx, 0x44
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
push str.UserDataSavePath
push str.UserDataSet
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::destructor_void_]
lea eax, [ebp - 0x38]
push eax
push 0x413448
push ebx
push 2
push edi
push 0xcd7
push esi
mov dword [ebp - 0x38], 0x415248
call fcn.004011f4
add esp, 0x1c
lea eax, [ebp - 0x4c]
push eax
push ecx
lea eax, [ebp - 0x18]
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
call fcn.0040be78
mov eax, dword [ebp - 0x14]
and dword [ebp - 0x2c], 0
pop ecx
pop ecx
mov ecx, dword [eax + 0x54]
mov eax, dword [ecx]
lea edx, [ebp - 0x2c]
push edx
push 0
push 0x64
push 0
push 0x64
push 1
push 3
call dword [eax]
cmp dword [ebp - 0x2c], 0
je 0x40e829
mov dword [ebp - 0x24], 3
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x54]
and dword [ebp - 0x2c], 0
mov eax, dword [ecx]
lea edx, [ebp - 0x2c]
push edx
push 0
push 0x64
push 0
push 0x64
push 1
push 4
call dword [eax]
cmp dword [ebp - 0x2c], 0
je 0x40e8bb
mov dword [ebp - 0x38], 3
jmp 0x40e91a
lea eax, [ebp - 0x38]
push eax
push 0x413448
push ebx
push 2
push edi
push 0xce8
push esi
mov dword [ebp - 0x38], 0x41511c
call fcn.004011f4
mov eax, dword [ebp - 0x14]
add esp, 0x1c
push dword [eax + 0x54]
lea eax, [ebp - 0x1c]
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x18]
push eax
call fcn.0040d583
push eax
push 0x4150ec
push ebx
push 2
push edi
push 0xcec
push esi
mov dword [ebp - 0x24], eax
call fcn.00402950
add esp, 0x1c
cmp dword [ebp - 0x24], 1
je 0x40e7f5
cmp dword [ebp - 0x24], 2
je 0x40e7f5
cmp dword [ebp - 0x24], 3
je 0x40e7f5
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x54]
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x24]
jmp 0x40e9ef
lea eax, [ebp - 0x3c]
push eax
push 0x413448
push ebx
push 2
push edi
push 0xd06
push esi
mov dword [ebp - 0x3c], 0x4150d0
call fcn.004011f4
mov eax, dword [ebp - 0x14]
add esp, 0x1c
push dword [eax + 0x54]
lea eax, [ebp - 0x1c]
push ecx
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x18]
push eax
call fcn.0040db81
push eax
push 0x415094
push ebx
push 2
push edi
push 0xd0a
push esi
mov dword [ebp - 0x38], eax
call fcn.00402950
add esp, 0x1c
mov ecx, dword [ebp - 0x14]
add ecx, 0x3c
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x40e962
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x14]
push ecx
add eax, 0x3c
mov ecx, esp
mov dword [ebp - 0x28], esp
push eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__]
push 0x414d48
push ebx
push 2
push edi
push 0xd11
push esi
call fcn.00407b33
add esp, 0x20
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x28], 1
test ecx, ecx
je 0x40e9db
mov edi, dword [ebp - 0x34]
test edi, edi
je 0x40e9db
mov esi, dword [ebp - 0x24]
test esi, esi
je 0x40e9db
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x40e9db
or eax, 0xffffffff
cmp ecx, eax
je 0x40e9d1
cmp edi, eax
je 0x40e9d1
cmp esi, eax
je 0x40e9d1
cmp edx, eax
je 0x40e9d1
push 0xfffffffffffffffd
pop ebx
cmp ecx, ebx
je 0x40e9d6
cmp edi, ebx
je 0x40e9d6
cmp esi, ebx
je 0x40e9d6
cmp edx, ebx
je 0x40e9d6
push 3
pop eax
cmp ecx, eax
je 0x40e9d1
cmp edi, eax
je 0x40e9d1
cmp esi, eax
je 0x40e9d1
cmp edx, eax
je 0x40e9d1
push 2
pop eax
cmp ecx, eax
je 0x40e9d1
cmp edi, eax
je 0x40e9d1
cmp esi, eax
je 0x40e9d1
cmp edx, eax
jne 0x40e9df
mov dword [ebp - 0x28], eax
jmp 0x40e9df
mov dword [ebp - 0x28], ebx
jmp 0x40e9df
and dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x54]
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x28]
mov edx, dword [ecx]
push 5
call dword [edx]
mov esi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::destructor_void_]
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call esi
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.0040d548
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0
call esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call esi
call fcn.0040f921
ret