Function at 0x40e479
Capabilities:
Delete directory

Disassembly:
push 0x40
mov eax, 0x411d49
call fcn.0040f874
mov esi, ecx
mov dword [ebp - 0x14], esi
lea eax, [ebp - 0x18]
push eax
call fcn.0040ef44
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.0040f2bc
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.00407b65
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 0x4150e0
push ebx
push 2
push edi
push 0xc8a
push esi
call fcn.00407b65
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.00407669
test eax, eax
jne 0x40e58e
lea eax, [ebp - 0x38]
push eax
push 0x413454
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 0x40ea42
push ecx
mov dword [ebp - 0x3c], esp
lea eax, [ebp - 0xd]
mov dword [ebp - 0x3c], esp
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040ae70
lea eax, [ebp - 0x38]
push eax
push 0x413454
push ebx
push 2
push edi
push 0xc9b
push esi
mov byte [ebp - 4], 2
mov dword [ebp - 0x38], 0x414fec
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.0040d1f1
push eax
push 0x414fb0
push ebx
push 2
push edi
push 0xc9f
push esi
mov dword [ebp - 0x30], eax
call fcn.004029eb
add esp, 0x1c
cmp dword [ebp - 0x30], 1
je 0x40e63b
cmp dword [ebp - 0x30], 2
je 0x40e63b
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.0040d57a
jmp 0x40e583
lea eax, [ebp - 0x38]
push eax
push 0x413454
push ebx
push 2
push edi
push 0xcad
push esi
mov dword [ebp - 0x38], 0x414f9c
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.0040cf15
push eax
push 0x414f6c
push ebx
push 2
push edi
push 0xcb1
push esi
mov dword [ebp - 0x34], eax
call fcn.004029eb
add esp, 0x1c
cmp dword [ebp - 0x34], 1
je 0x40e6bf
cmp dword [ebp - 0x34], 2
je 0x40e6bf
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 0x40e624
lea eax, [ebp - 0x20]
push eax
call fcn.0040ed6b
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 0x40e7bf
lea eax, [ebp - 0x38]
push eax
push 0x413454
push ebx
push 2
push edi
push 0xcc1
push esi
mov dword [ebp - 0x38], 0x41509c
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.004073fd
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 0x4142d0
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 0x40e78e
call dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
push eax
push 0x413664
jmp 0x40e7a2
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 0x413454
push ebx
push 2
push edi
push 0xcd7
push esi
mov dword [ebp - 0x38], 0x415088
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.0040bead
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 0x40e85b
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 0x40e8ed
mov dword [ebp - 0x38], 3
jmp 0x40e94c
lea eax, [ebp - 0x38]
push eax
push 0x413454
push ebx
push 2
push edi
push 0xce8
push esi
mov dword [ebp - 0x38], 0x414f5c
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.0040d5b5
push eax
push 0x414f2c
push ebx
push 2
push edi
push 0xcec
push esi
mov dword [ebp - 0x24], eax
call fcn.004029eb
add esp, 0x1c
cmp dword [ebp - 0x24], 1
je 0x40e827
cmp dword [ebp - 0x24], 2
je 0x40e827
cmp dword [ebp - 0x24], 3
je 0x40e827
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 0x40ea21
lea eax, [ebp - 0x3c]
push eax
push 0x413454
push ebx
push 2
push edi
push 0xd06
push esi
mov dword [ebp - 0x3c], 0x414f10
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.0040dbb3
push eax
push 0x414ed4
push ebx
push 2
push edi
push 0xd0a
push esi
mov dword [ebp - 0x38], eax
call fcn.004029eb
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 0x40e994
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 0x414b88
push ebx
push 2
push edi
push 0xd11
push esi
call fcn.00407b65
add esp, 0x20
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x28], 1
test ecx, ecx
je 0x40ea0d
mov edi, dword [ebp - 0x34]
test edi, edi
je 0x40ea0d
mov esi, dword [ebp - 0x24]
test esi, esi
je 0x40ea0d
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x40ea0d
or eax, 0xffffffff
cmp ecx, eax
je 0x40ea03
cmp edi, eax
je 0x40ea03
cmp esi, eax
je 0x40ea03
cmp edx, eax
je 0x40ea03
push 0xfffffffffffffffd
pop ebx
cmp ecx, ebx
je 0x40ea08
cmp edi, ebx
je 0x40ea08
cmp esi, ebx
je 0x40ea08
cmp edx, ebx
je 0x40ea08
push 3
pop eax
cmp ecx, eax
je 0x40ea03
cmp edi, eax
je 0x40ea03
cmp esi, eax
je 0x40ea03
cmp edx, eax
je 0x40ea03
push 2
pop eax
cmp ecx, eax
je 0x40ea03
cmp edi, eax
je 0x40ea03
cmp esi, eax
je 0x40ea03
cmp edx, eax
jne 0x40ea11
mov dword [ebp - 0x28], eax
jmp 0x40ea11
mov dword [ebp - 0x28], ebx
jmp 0x40ea11
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.0040d57a
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0
call esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call esi
call fcn.0040f913
ret