Function at 0x406240
Capabilities:
Delete file

Disassembly:
push ebp
mov eax, 0x2078
call fcn.00413740
sub esp, eax
mov eax, dword [esp + 0x2080]
mov dword [esp + 0x34], sym.___gxx_personality_sj0
mov dword [esp + 0x38], 0x4e0e0c
mov dword [esp + 0x14], eax
lea eax, [esp + 0x2070]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x40], 0x406754
mov dword [esp + 0x44], esp
call dbg._Unwind_SjLj_Register
lea eax, [esp + 0x1070]
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 4], eax
lea eax, [esp + 0x20a8]
mov dword [esp], eax
call sym.GetProcessPath_char__char_
lea eax, [esp + 0x78]
lea edx, [esp + 0x1070]
mov dword [esp + 0x70], eax
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4062bc
mov ecx, eax
mov byte [esp + 8], 0
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 0x20], 0xffffffff
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
lea eax, [esp + 0x1070]
lea ecx, [esp + 0x70]
sbb edx, 3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag_
sub esp, 0xc
lea eax, [esp + 0x70]
mov dword [esp + 0x20], 1
mov dword [esp], eax
call sym.WhiteList_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x78]
cmp eax, edx
je 0x40633f
mov dword [esp], eax
call sym.operator_delete_void_
cmp byte [esp + 0x1b], 0
jne 0x406396
cmp word [esp + 0x14], 0x1e
je 0x4063b0
cmp word [esp + 0x14], 0x2e
je 0x406448
cmp word [esp + 0x14], 0x3e
je 0x406570
lea eax, [esp + 0x70]
mov dword [esp + 0xc], 0x1034
mov dword [esp + 8], 0x4e6243
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0x20], 0xffffffff
call dword [sym.imp.USER32.dll_MessageBoxA]
sub esp, 0x10
lea eax, [esp + 0x1c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
add esp, 0x2078
pop ebp
ret
lea eax, [esp + 0x1070]
mov dword [esp + 4], 0x4e63fc
mov dword [esp + 8], eax
lea eax, [esp + 0x70]
mov dword [esp], eax
call sym.sprintf_char__char_const__..._
lea eax, [esp + 0x70]
mov dword [esp + 0xc], 0x1034
mov dword [esp + 8], 0x4e6243
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0x20], 0xffffffff
call dword [sym.imp.USER32.dll_MessageBoxA]
sub esp, 0x10
cmp eax, 6
jne 0x4066b8
lea eax, [esp + 0x20a8]
mov dword [esp + 0x20], 0xffffffff
mov dword [esp], eax
call sym.KillProcess_char_
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll_time]
mov dword [0x4f2034], eax
lea eax, [esp + 0x1070]
mov dword [esp], eax
call sym.OnFileDelete_char_
jmp 0x406396
mov eax, dword [esp + 0x208c]
mov dword [esp + 4], 1
mov dword [esp + 0x20], 0xffffffff
mov dword [esp], eax
call sym.PauseProcess_unsigned_long__bool_
lea eax, [esp + 0x1070]
mov dword [esp + 4], 0x4e6490
mov dword [esp + 8], eax
lea eax, [esp + 0x70]
mov dword [esp], eax
call sym.sprintf_char__char_const__..._
lea eax, [esp + 0x70]
mov dword [esp + 0xc], 0x1034
mov dword [esp + 8], 0x4e6243
mov dword [esp + 4], eax
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxA]
sub esp, 0x10
cmp eax, 6
mov eax, dword [esp + 0x208c]
mov dword [esp + 4], 0
mov dword [esp], eax
je 0x406740
mov dword [esp + 0x20], 0xffffffff
call sym.PauseProcess_unsigned_long__bool_
lea eax, [esp + 0x60]
lea edx, [esp + 0x1070]
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], eax
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4064e9
mov ecx, eax
mov byte [esp + 8], 0
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 0x20], 0xffffffff
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
lea eax, [esp + 0x1070]
lea ecx, [esp + 0x58]
sbb edx, 3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag_
sub esp, 0xc
lea eax, [esp + 0x58]
mov dword [esp + 0x20], 3
mov dword [esp], eax
call sym.WriteList_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x14]
je 0x406396
mov dword [esp], eax
call sym.operator_delete_void_
jmp 0x406396
lea eax, [esp + 0x20a8]
mov dword [esp + 0x20], 0xffffffff
mov dword [esp], eax
call sym.KillProcess_char_
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll_time]
mov dword [0x4f2034], eax
lea eax, [esp + 0x1070]
mov dword [esp], eax
call sym.OnFileDelete_char_
lea eax, [esp + 0x1070]
mov dword [esp + 4], 0x4e6590
mov dword [esp + 8], eax
lea eax, [esp + 0x70]
mov dword [esp], eax
call sym.sprintf_char__char_const__..._
lea eax, [esp + 0x70]
mov dword [esp + 0xc], 0x1034
mov dword [esp + 8], 0x4e6243
mov dword [esp + 4], eax
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxA]
sub esp, 0x10
cmp eax, 6
je 0x406698
lea eax, [esp + 0x1070]
mov dword [esp], 0x4f2040
mov dword [esp + 4], eax
call sym.MoveFileTo_char__char_
lea eax, [esp + 0x60]
lea edx, [esp + 0x1070]
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], eax
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x406622
mov ecx, eax
mov byte [esp + 8], 0
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 0x20], 0xffffffff
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
lea eax, [esp + 0x1070]
lea ecx, [esp + 0x58]
sbb edx, 3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag_
sub esp, 0xc
lea eax, [esp + 0x58]
mov dword [esp + 0x20], 4
mov dword [esp], eax
call sym.WriteList_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
jmp 0x406554
mov dword [esp], 0x4f2040
mov dword [esp + 0x20], 0xffffffff
call sym._remove
jmp 0x406396
lea eax, [esp + 0x60]
lea edx, [esp + 0x1070]
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], eax
mov ecx, dword [edx]
add edx, 4
lea eax, [ecx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x4066cb
mov ecx, eax
mov byte [esp + 8], 0
shr ecx, 0x10
test eax, 0x8080
mov dword [esp + 0x20], 0xffffffff
cmove eax, ecx
lea ecx, [edx + 2]
cmove edx, ecx
mov ecx, eax
add cl, al
lea eax, [esp + 0x1070]
lea ecx, [esp + 0x58]
sbb edx, 3
mov dword [esp], eax
mov dword [esp + 4], edx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag_
sub esp, 0xc
lea eax, [esp + 0x58]
mov dword [esp + 0x20], 2
mov dword [esp], eax
call sym.WriteList_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
jmp 0x406554
call sym.PauseProcess_unsigned_long__bool_
lea eax, [esp + 0x20a8]
mov dword [esp], eax
jmp 0x40641a